一、注解模式
-
@Component
注解默认实例化的对象是单例,如果想声明成多例对象可以使用@Scope(“prototype”) -
@Repository
默认单例 -
@Service
默认单例 -
@Controller
默认多例
二、Spring中的bean的生命周期
singleton
(全局的)是随着spring
的存亡而存亡prototype
又叫多例模式,用的时候就new
一下,用完就没有了。session
存在这一次会话session
中,session
过期后它就没了。request
存在这一次请求中,请求结束了它就结束。
三、生命周期init、destory
-
首先两个这两个生命周期对应两个
bean
【InitializingBean
、DisposableBean
】(这两个bean
只有对应的生命周期的方法,用于对应周期的回调)
-
通过实现其重写destroy方法,实现回调
@Component
public class CronTaskManager implements DisposableBean {
// 例如调度任务的任务集统一清除
@Override
public void destroy() {
for (ScheduleInfo scheduleInfo : this.scheduledTaskMap.values()) {
ScheduledTaskFuture task = scheduleInfo.getScheduledTaskFuture();
task.cancel();
}
this.scheduledTaskMap.clear();
}
}