Spring框架入门:(非原著,转载)

1.1、      耦合性和控制反转:

对象之间的耦合性就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。因此,对象的设计应使类和构件之间的耦合最小。

例:

public interface ICustomerDao{      //接口

public boolean getCustomerByAccount();

}

public class CustomerDao implements ICustomerDao{

/*实现代码*/

}

public class BeanFactory{         //工厂类

public static Object getBean(String className){

return Class.forName(className).newInstance();         //反射机制

}

}

Public class LoginAction{

public void execute(){

ICustomerDao icdao =

(ICustomerDao)BeanFactory.getBean(“CustomerDao”);

boolean b = icdao.getCustomerByAccount();

}

}

控制反转的原理:

这种设计方法有一个好处是,BeanFactory类的通用性很强,可以将其框架化。因此,框架化之后,对象的生成由框架参考配置文件进行,和具体实现类的源码无关,将对象生成的控制权由修改不方便的源代码转变为修改相对方便的配置文件与几乎不进行修改的框架进行,这就是控制反转(IOC)的原理。

1.2、      Spring框架简介:

IOC思想给降低对象间的耦合性带来了巨大的好处,但是,IOC毕竟只是一种思想,不同的程序员写出的基于IOC思想的应用,风格可能不一样,影响程序的标准化。因此,有必要对IOC来进行标准化。

Spring就是这样的一个框架,在使用的过程中,受到广泛的承认。因此,IOC是Spring框架的基础,或者说,Spring是为了规范IOC开发而发布的一个框架。

2、Spring框架的基本使用方法:

2.1、导入Spring框架:

(1)、新建一个Java Project;

(2)、MyEclipse —> Project Capabilities —> Add Spring Capabilities:

2.2、编写被调用方及其接口:

(1)、

package idao;

publicinterface ICustomerDao {

publicboolean getCustomerByAccount();

}

(2)、

package dao;

import idao.ICustomerDao;

publicclass CustomerDao implements ICustomerDao{

publicboolean getCustomerByAccount(){

System.out.println("CustomerDao查询数据库");

returntrue;

}

}

2.3、编写Spring配置文件:

Spring的配置文件为applicationContext.xml,一般不要修改名称,并放在src目录下,该文件的主要目的是配置需要实例化的对象:

<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="icdao" class="dao.CustomerDao"></bean>

</beans>

2.4、编写调用方:

本例中,调用方为LoginAction,在Action中,可以调用Spring框架,让其根据配置文件实例化相应的对象:

package action;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

import idao.ICustomerDao;

publicclass LoginAction {

publicvoid execute(){

ApplicationContext context =

new FileSystemXmlApplicationContext("/src/applicationContext.xml");

ICustomerDao icdao = (ICustomerDao)context.getBean("icdao");

icdao.getCustomerByAccount();

}

}

然后,编写一个测试文件,来测试前面的代码:

package main;

import action.LoginAction;

publicclass Main {

publicstaticvoid main(String[] args) {

new LoginAction().execute();

}

}

3、依赖注入:

Spring配置文件的核心体现在:

<bean id=”icdao” class=”dao.CustomerDao”></bean>

表示让框架实例化一个dao.CustomerDao对象,名为icdao,这就是控制反转原理的实现。但是,在Spring中,还有一个重要的功能,那就是依赖注入。

依赖注入,通俗地说,就是可以由配置文件决定向某个对象中存入值。

3.1、属性注入:

(1)、如果属性是简单数据,属性注入格式如下:

<property name=”属性名”>

<value>值<value>

</property>

(2)、如果是一个对象,则属性注入格式如下:

<property name=”属性名”>

<ref local=”对象名” />

</property>

3.2、构造函数注入:

(1)、如果属性是简单数据,则构造函数注入格式如下:

<constructor-arg index=”参数序号” type=”参数类型”>

<value>参数的值</value>

</constructor>

(2)、如果是一个对象,构造函数注入的格式如下:

<constructor-arg index=”参数序号” type=”参数类型” ref=”对象名”>

</constructor-arg>

注意:属性注入的特点是不需要知道属性类型,但必须知道属性名称;

构造函数注入的特点是不需要知道参数名称,但必须知道参数的序号和类型。

4、其他问题

4.1、Bean的初始和消亡函数:

在Spring配置文件的bean标签中,可以设置初始化函数和消亡函数:

<bean id=”testInit” class=”test.TestInit”

init-method=”init”

destroy-method=”destroy” >

</bean>

表示实例化test.TestInit的对象时,构造函数调用之后,自动调用init函数,该对象消亡时,自动调用destroy函数。

注意:初始化函数和消亡函数不能有参数。

初始化函数可以在其他

4.2、延迟加载:

在Spring配置文件的bean标签中,可以设置该bean是否为延迟加载。

例:

<bean id=”testLazy” class=”test.TestLazy” lazy-init=”false”></bean>

表示实例化testLazy对象不延迟加载。

时间: 2024-10-21 17:32:46

Spring框架入门:(非原著,转载)的相关文章

Java - Struts框架教程 Hibernate框架教程 Spring框架入门教程(新版) sping mvc spring boot spring cloud Mybatis

https://www.zhihu.com/question/21142149 http://how2j.cn/k/hibernate/hibernate-tutorial/31.html?tid=63 https://www.zhihu.com/question/29444491/answer/146457757 1. Java - Struts框架教程Struts 是Apache软件基金会(ASF)赞助的一个开源项目.通过采用JavaServlet/JSP技术,实现了基于Java EEWeb

Spring框架入门

1.1专业术语了解 组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响:即需要实现或继承某些特定类. 例如:     Struts框架  继承ActionSupport 非侵入式设计 引入了框架,对现有的类结构没有影响. 例如:Hibernate框架 / Spring框架 控制反转: 控制反转 ,IOCInversion on Control 对象的创建交给外部容器完成,这个就做控制反转. 原本在业务逻辑层里面,需要得到DAO的实现,要么在业务逻辑层直接new,要么使用工厂获取一个.

1.Spring框架入门

**Spring框架的IOC核心功能快速入门(必须掌握开发的步骤)** 0. 什么是IOC的功能? * IOC -- Inverse of Control,控制反转,将对象的创建权反转给Spring!! * 使用IOC可以解决的程序耦合性高的问题!! 1. 步骤一:下载Spring框架的开发包 * 下载路径为:http://repo.spring.io/webapp/search/artifact/?0&q=spring-framework * 解压后的目录结构如下 * docs -- API和

使用Spring框架入门一:基于XML配置的IOC/DI的使用

一.Spring框架 1.方法一:逐项导入基础依赖包: spring-core.spring-beans.spring-context.spring-expression 2.方法二:最简洁的导入,直接导入spring-context包: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version&g

spring框架入门之一

一.什么是Spring框架 1.什么是Spring Spring框架是个一个全栈的框架.意思就是使用Spring的框架可以开发web层,service层还有dao层. 本质:Spring就是一个对象的容器,因为在这个容器中有可以处理请求的对象,所以可以用来写web层,因为有service层对象,所以可以用来写service层,因为有dao层对象,所以可以用来操作数据库. Spring的开放性和包容性非常强大,可以进行无缝整个第三方优秀的框架,不会重复造轮子. Spring框架的结构: Sprin

Spring - 框架入门

认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP(Aspect Oriented Programming,面向切面编程). 什么是 Spring: ① Spring 是一个轻量级的 DI / IoC 和 AOP 容器的开源框架, 来源于 Rod Johnson 在其著作<Expert one on one J2EE design and devel

Spring框架入门浅析

一.Spring Bean的配置 在需要被Spring框架创建对象的实体类的类声明前面加注解:@component.这样在Spring扫描的时候,看到该注解就会在容器中创建该实体类的对象.那么,Spring如何可以扫描到该类呢?在配置文件夹下,右键-new-Spring Bean Configuration File,然后创建该文件,文件名可以任意,这里设为"applicationContext.xml". 在applicationContext.xml中,需要配置Spring框架在加

1.Spring框架入门案例

一.简单入门案例 入门案例:IoC 1.项目创建与结构 2.接口与实现类 User.java接口 package com.jd.ioc; /** * @author weihu * @date 2018/8/8/008 22:29 * @desc 用户接口 */ public interface User { void addUser(); } UserImpl.java实现类 package com.jd.ioc.impl; import com.jd.ioc.User; /** * @aut

浅析Spring框架下PropertyPlaceholderConfigurer类[转载]

要了解这个类首先要弄清楚一个概念:bean factory post-processor官方解释是这样的:A bean factory post-processor is a java class which implements theorg.springframework.beans.factory.config.BeanFactoryPostProcessor interface. It is executed manually  (in the case of the BeanFacto