构造函数:

​ 工厂方法:在XML中配置工厂类的类名,然后配置要调用的方法

1
2
3
<bean id = "accountService" 
factory-bean="instanceFactory"
factory-method="getAccountService"></bean>

​ 用工厂中的静态方法创建对象,和工厂方法差不多只是现在调的是静态方法

1
2
3
<bean id = "accountService" 
class="gao.factory.StaticFactory"
factory-method="getAccountService"></bean>

Bean的作用范围:用bean标签中的的scope属性来限定。

​ scope的取值有:singleton:单例(默认值),prototype:多例,request:作用于Web应用的请求范围,session:作用于Web应用的会话范围,global-session:作用于集群环境的会话范围(全局会话范围),当不是集群环境时,它就是session

​ 此外还可以init-method和destroy-method属性来规定创建和销毁对象时的要调用的方法。

Bean对象的生命周期

​ 单例对象:出生:当容器创建的时候对象出生;活着:只要容器还在,对象一直活着;死亡:容器销毁,对象消亡。生命周期伴随着容器的存亡。

​ 多例对象:出生:当使用对象时Spring框架才会创建对象;活着:对象使用过程中一直活着;死亡:当对象长时间不用且没有别的对象引用时由GC回收。

​ 在构建Bean时需要传参,用构造函数传参的时候使用constructor-arg标签,属性type,index,name(给指定名称的参数赋值);value提供基本类型,ref提供其他类型,set方法传参使用property标签的name属性,属性值为set方法名,而不是字段名。注入复杂类型只需在property标签下写子标签来提供参数。用于给List结构集合注入的标签:list array set;用于给Map结构集合注入的标签map props。结构相同,标签可以互换。