1. bean对象装配的三种方式(就是在配置文件中写一个bean标签)
①内部new一个实现类,调用默认构造器
<bean id="userService" class="com.diao.service.UserServiceImpl"></bean>
②通过静态工厂方法
<!--在静态方法中返回一个实例对象,通过调用工厂类的静态方法获取实例对象-->
<bean id="userService" class="com.diao.service.UserServiceFactory" factory-method="返回对象的静态方法"></bean>
③实例工厂方法(非静态方法,需要对象调用)
<!--通过创建工厂类的实例对象,然后调用对象的方法去返回一个对象-->
<bean id="factory" class="com.diao.service.UserServiceFactory"></bean>
<bean id="userService" factory-bean="factory" factory-method="返回对象的方法"></bean>
2.bean对象的作用域
常用的有:
①singleton:单例(标签中不指定默认是单例的)
②prototype:多例
③request:作用于web应用的请求范围
④session:作用于web应用的会话范围
⑤global-session:作用于集群环境的会话范围,不是集群环境时,就是session
<bean id="userService" class="com.diao.service.UserServiceImpl" scope="prototype"></bean>
3.bean对象的生命周期
单例:
出生:当容器创建时对象出生
活着:只要容器还在,对象一直或者
死亡:容器销毁,对象消亡
多例:
出生:当使用对象时spring框架进行创建
活着:对象只要是在使用过程中就一直活着
死亡:当对象长时间不用且没有别的对象引用时,由Java的垃圾回收器进行回收