LichongQ / record

for record something necessary
0 stars 0 forks source link

Spring #14

Open LichongQ opened 6 years ago

LichongQ commented 6 years ago

https://www.cnblogs.com/dreamworlds/p/5398428.html https://www.ibm.com/developerworks/cn/java/wa-spring1/index.html springbean的生命周期:https://www.jianshu.com/p/3944792a5fff

LichongQ commented 6 years ago

spring Bean的作用域 singleton 容器范围内唯一,在容器启动时自动实例化Bean并缓存在容器内。bean实例归容器管理 prototype 每次getBean返回一个bean的新实例,启动时默认不实例化bean。bean实例归调用者管理 request 使用webapplicationContext容器时,每次http请求创建,请求处理完成后销毁。 session global session

LichongQ commented 5 years ago

在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载、初始化缓存、特定任务的注册等等。这个时候我们就可以使用Spring提供的ApplicationListener来进行操作 spring容器在加载完所有的Bean后(区别于单个bean加载完成后的init方法),开始执行ApplicationListener.onApplicationEvent()方法 -- 事件监听的观察者模式 应用场景:在spring容器(ApplicationContext)加载完成时,从spring容器中获取指定注解的Bean(注解将class声明为Bean)

LichongQ commented 5 years ago

@Order注解主要用来控制配置类(@Configuration)的加载顺序 @WebServlet 自定义servlet,而不使用web.xml。配置@ServletComponentScan 扫描范围中的自定义的servlet

LichongQ commented 5 years ago

afterPropertiesSet 和init-method之间的执行顺序是afterPropertiesSet 先执行,init-method 后执行。从BeanPostProcessor的作用,可以看出最先执行的是postProcessBeforeInitialization,然后是afterPropertiesSet,然后是init-method,然后是postProcessAfterInitialization postProcessBeforeInitialization > afterPropertiesSet > init-method > postProcessAfterInitialization