单例模式
/**
* 单例模式:类只能生成一个对象
* 2- 饥饿式:第一次调用时才实例化单例对象(饿汉式)
*/
public class SingletonClass {
private static SingletonClass obj;
private SingletonClass() {
}
static {
obj = new SingletonClass();
}
public static SingletonClass getInstance()
return obj;
}
}
public class SingletonClass {
private static SingletonClass obj;
private SingletonClass() {
}
public static SingletonClass getInstance() {
if(obj == null) {
obj = new SingletonClass();
}
return obj;
}
}
Bean的声明周期:
1- <bean scope="singleton" lazy-init="false" ...> 非懒加载,并且单例
产生时机:加载IOC容器时
销毁:卸载IOC容器时(Web应用,则是停止web服务时卸载IOC)
2- <bean scope="singleton" lazy-init="true" ...> 懒加载,并且单例
产生时机:加载IOC容器后,第一次调用后产生,并交给 IOC管理
销毁:卸载IOC容器时(Web应用,则是停止web服务时卸载IOC)
3- <bean scope="prototype" ...> 原型方式
产生时机:每次调用时产生,不交给 IOC管理
销毁:当这个对象不被引用,有JVM垃圾回收机制回收掉