(一)三种实例化Bean的方法
1. 使用构造函数
在环境测试中使用的创建Bean的方法是默认的构造函数创建
2. 使用静态工厂
定义一个静态工厂,利用此工厂创建一个Bean实例
在spring-config.xml中配置bean
3. 使用实例化工厂
使用工厂实例化对象:
将此工厂Bean交给spring容器管理
(二)配置Spring管理的bean的作用域
当Bean交给spring容器管理后,每次使用getBean()获得到的bean对象默认情况下是同一个
如果想每次获得到的bean对象不同,则在配置文件中定义scope属性:
(三)Spring管理的Bean的生命周期
Spring管理的bean的生命周期,如下配置
默认情况下只有一个bean对象被spring容器管理,当创建容器对象时,会自动创建它所管理的bean对象
但是可以在配置中添加lazy-init=”true”属性,表示延迟创建bean对象,那么Bean对象在调用以下语句时创建:
在创建对象是,会调用构造函数,使用init-method=”init”进行初始化,当bean对象销毁时自动调用destory进行对象销毁。
Bean对象类:
(四)Spring依赖注入(通过setter方法属性注入)
1.对象注入
有个dao对象,如何被service处理,通过spring容器实现控制反转
PersonDaoBean对象类:
PersonServiceBean对象类:
如何通过spring容器将dao对象注入到service对象中,配置spring-config.xml
方法一:
通过<property>标签实现对象注入,name=”personDao”为PersonServiceBean中成员变量(属性),ref=”persondao”为引用的dao对象。
方法二:
通过使用内部bean的方法实现注入。
注意:方法一中的一个dao对象可被多个service bean对象使用,但方法二却只能使用一次
2.基本类型注入
基本类型的注入也使用property标签,如
3.集合类型的装配
将各种集合产生setter/getter方法,且getter方法在接口中。
Spring容器注入的配置:
测试:
(五)Spring依赖注入(构造器注入)
通过构造器传入参数注入值:
有一个bean类,定义了有参数的构造器
配置如下: