@Scope()注解描述了Bean的作用域,常用有singleton(单例);prototype(每次获取都是新实例,但spring不会管理该类,并且不负责消毁该类的实例)
-
singleton:单例,默认值,内存中只有一个bean实例,创建容器时就会自动创建,无论是否使用
-
prototype:原型,每次调用都会生成一个新的bean,只有获取Bean时才会创建Bean实例
-
request:每次发送HTTP请求时都会生成一个新的实例,该作用域仅适用于WebApplicationContext
-
session:同一个Http Session共享一个Bean,不同的Session使用不同的Bean
-
golbal session:一般用于Portlet中,仅适用于WebApplicationContext中
@Lazy用于描述此类支持延迟加载,通常配合单例使用
@PostConstruct 注解描述了bean对象在构造方法执行完成后要方法
@PreDestroy注解用于描述Bean对象被销毁前执行的方法
@Component
@Scope("singleton")
@Lazy
public class DefaultCache {
public DefaultCache() {
System.out.println("cache()");
}
@PostConstruct
public void init() {
System.out.println("init()");
}
@PreDestroy
public void destory() {
System.out.println("destory");
}
}