SSM项目
一般javabean写在配置文件进行加载:
<bean id="mcProducer" class="xxxx.McProducer" init-method="init"
destroy-method="destroy"
scope="singleton">
<property name="producerGroup" value="${mq.group}"></property>
<property name="namesrvAddr" value="${mq.srvAddr}"></property>
<property name="prodThreadSize" value="${mq.threadSize}"></property>
</bean>
<bean id="mcConsumer" class="xxxx.McConsumer" init-method="init"
destroy-method="destroy"
scope="singleton">
<property name="consumerGroup" value="${mq.group}"></property>
<property name="namesrvAddr" value="${mq.srvAddr}"></property>
<property name="cusThreadSize" value="${mq.threadSize}"></property>
</bean>
SpringBoot项目
默认创建的bean是单例 即: scope=“singleton”
版本
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreDestroy
顺序
Constructor >> @Autowired >> @PostConstruct
看到以上的顺序需要知道: @PostConstruct是在依赖注入后完成
@PostConstruct
初始化方法则加上注解:@PostConstruct
@PostConstruct //方式1
public void someMethod(){
...
}
public @PostConstruct void someMethod(){ //方式2
...
}
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。
被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行
@PreDestroy
bean销毁的时候,则添加 @PreDestroy
被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。
被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前