<!--
scope :设置bean的作用域
scope="singleton / prototype"
singleton(单例):表示获取该bean所对应的对象都是同一个prototype(多例):表示获取该bean所对应的对象都不是同一个-->
<bean id="student" class="com.student" scope=""prototype">
<property name="sid" value="1111"></property>
<property name="sname" va1ue="jane"></property>
</ bean>
生命周期历程:
bean对象创建(调用无参构造器)
给bean对象设置属性
bean对象初始化之前操作(由bean的后置处理器负责)
bean对象初始化(需在配置bean时指定初始化方法)
bean对象初始化之后操作(由bean的后置处理器负责)
bean对象就绪可以使用
bean对象销毁(需在配置bean时指定销毁方法)
IOC容器关闭(需要使用Applicationcontext的子接口ConfigurableApplicationcontext,它扩展了刷新和扩展容器的方法)
注:初始化,需要通过bean的init-method属性指定初始化的方法
IOC容器关闭时销毁,需要通过bean的destroy-method属性指定销毁的方法
若bean的作用域为单例时,生命周期的前三个步骤会在获取IOC容器时执行
若bean的作用域为多例时,生命周期的前三个步骤会在获bean时执行且无法管理销毁
后置处理器(会在初始化前后添加额外的操作)使用要创建一个类继承BeanPostProcessor方法,ctrl+o重新方法,之后创建对应的bean
后置处理器会对所有bean生效
网友评论