设计模式
参考:https://www.cnblogs.com/android-blogs/p/5530239.html
1. Spring管理的对象的作用域与生命周期(不常用)
由Spring管理的对象,默认都是单例的!并且,都是饿汉式的单例模式。
在配置<bean>
节点时,可以添加scope
属性其是否单例,当取值为singleton
时表示单例,该值也是默认值,当取值为prototype
时表示非单例:
<bean id="user"
class="cn.tedu.spring.User"
scope="prototype"></bean>
在单例模式的基础之上,还可以通过lazy-init
属性配置它是否为懒汉式的单例模式,默认值为false
,即非懒汉式,也就是饿汉式的单例模式,当取值为true
时,表示懒汉式的单例模式:
<bean id="user"
class="cn.tedu.spring.User"
scope="singleton"
lazy-init="true"></bean>
如果某个类被配置为单例模式,还可以配置它的生命周期方法:首先,在类中声明2个方法,这2个方法都应该是public
方法,返回值都是void
,方法名称可以自由定义,方法必须没有参数,例如:
public void init() {
System.out.println("User.init()");
}
public void destroy() {
System.out.println("User.destroy()");
}
然后,在Spring的配置文件中,在<bean>
节点中配置init-method
和destroy-method
属性,即可配置初始化方法和销毁方法,这2个属性的取值都是需要调用的方法的名称:
<bean id="user"
class="cn.tedu.sp