标签:
1.web服务启动时,Spring在默认情况下是实例化所有的Bean(而不是需要用时在实例化,就好比数据库连接池),而且只创建一次,而且是单例的,这就是Bean的生命周期。
2.要改变默认的单例模式,可以这么做,把scope属性值设置为prototype(这个属性默认是懒加载的,意思是用到相应的Bean时才实例化):
<bean id="a" class="com.gdut.Student" scope="prototype"/>
从上面的1.2可以得知,Spring在web服务启动的时候是先实例化单例的Bean,因为是web服务启动的时候就已经实例化了。
Bean的生命周期:创建、初始化、销毁。可以解决创建实例时初始化数据的问题。
Bean创建主要使用构造方法去创建,另外2中方法静态和动态工厂(很少用),具体怎么做呢???
(依赖注入的两种方式)各种值(如A依赖于B,那么B如何注入呢?)如何注入到Bean中:1.set()方法;2.构造方法
两者的区别:构造方法的话是在创建对象的时候可以确定的参数,然后把它注入,就好比人生下来性别是确定的,在new人这个对象的时候就可以把性别这个属性通过构造方法注入;而set()主要是用于一些参数不确定的时候注入,比如说人生下来的时候学历是未知的,但是经过一定时间之后我们可以知道,在后期我们就可以通过set()方法注入,而且需要改变的时候还可以set()方法改变,方便后期的维护。
构造方法:<bean id="a" class="com.gdut.Student">
<constructor-arg name="sname" value="zhangsan" ></constructor-arg>(name的值是构造方法的形参的名字)
</bean>
set()方法注入
<bean id="a" classs="com.gdut.Student">
<property name="studentService" ref="com.gdut.StudentService">
</bean>
另一个问题:演示各种类型参数的注入,比如Map、Date、List、Set、properties
标签:
原文地址:http://www.cnblogs.com/2027437606qq/p/5027519.html