【Spring框架】 ☞ 项目启动时执行特定处理及ApplicationListener源码分析
1、背景
在一些业务场景中,在容器启动完成后,需要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操作。
本文重点介绍如何在服务启动中,或启动完成时执行相关处理。
2、针对上述场景,有如下实现方法
A:实现基于javaweb的ServletContextListener接口,重写contextInitialized()接口
B:实现基于javaweb的javax.servlet包下的Filter接口,重写init(FilterConfig filterConfig)接口
C:继承基于javaweb的servlet包下的HttpServlet父类,重写init()接口即可
D:实现基于Spring的ApplicationListener<ContextRefreshedEvent>接口,重写onApplicationEvent(ContextRefreshedEvent event)接口
总结:基于javaweb实现的接口,均需要在web.xml注册才可以启动时扫描到。基于Spring实现的,需要把对象注册到容器中。
下面是在一个加载顺序,可以看出 Listener和Filter是在Servlet之前执行的。
3、ApplicationListener源码分析
可以先看下 https://blog.csdn.net/u014263388/article/details/78996509
后续会上源码分析
转载于:https://www.cnblogs.com/liuxs13/p/9284445.html
【Spring框架】 ☞ 项目启动时执行特定处理及ApplicationListener源码分析相关推荐
- spring配置项目启动时执行
首先在配置文件中添加配置 <!-- 配置项目启动时执行 init方法--> <bean id="smsmanage" class="com.longr ...
- java 项目启动初始化_Spring项目启动时执行初始化方法
一.applicationContext.xml配置bean init-method="initKeyWord"> classpath:sensitive-word.xml ...
- java启动时执行_java怎么实现项目启动时执行指定方法
本文实例为大家共享了java项目启动时执行指定方法,供大家参考,详细内容如下 想到的就是监听步骤如下: 1.配置web.xml com.listener.InitListener 2.编写InitLi ...
- 【实战】Spring生成beanName冲突的解决之道:附源码分析
一.问题描述 最近公司项目打算模块化,其实一个原因也是为了能够整合公司多个业务的代码,比如一个资源xxx,两个业务中都有对这个资源的管理,虽然是一个资源,但是是完全不同的定义.完全不同的表.不同的处理 ...
- spring在项目启动时就执行特定方法
如何在项目启动时就执行特定方法 1. 方法上加注解@PostConstruct @Compant public class InitDemo{@PostConstructpublic void ini ...
- spring项目停止时执行特定代码
spring项目停止时 ,执行某个方法 1.spring配置bean的信息 ,指定销毁时执行clean()方法 <bean id="shutDownListener" cla ...
- springmvc项目在启动完成之后执行一次方法_SpringMVC源码分析
一 SpringMVC运行原理 二 SpingMVC源码分析 1 DispatcherServlet 1.1 DispatcherServlet继承结构 ServletConfig对象获取Init标签 ...
- 【Spring】IOC:基于注解的IOC容器初始化源码分析
从 Spring2.0 以后的版本中,Spring 也引入了基于注解(Annotation)方式的配置,注解(Annotation)是 JDK1.5 中引入的一个新特性,用于简化 Bean 的配置,可 ...
- pbp 读取 mysql数据_SqlAlchemy 中操作数据库时session和scoped_session的区别(源码分析)...
原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalch ...
最新文章
- MySQL中,当update修改数据与原数据相同时会再次执行吗?
- python windows错误码
- U-NET 图像预处理
- 著名物理学家斯蒂芬•霍金去世,他曾告诫人类要学会避免人工智能可能的风险
- 回溯法和DFS leetcode Combination Sum
- 微型计算机显示器引线,微型计算机的显示器通常有两组引线,即分别是( )...
- [Leedcode][JAVA][第999题][直接考虑题意]
- CCKS 2018 | 工业界论坛报告简介
- InfoQ观点:Java EE的未来
- Theano 中文文档 0.9 - 7.1.1 Python教程
- 服务端Latex解析成图片或者HTML或者SVG方案
- Redis实现MongoDB的getlasterror功能
- 计算机行显示性能调整,win7系统怎么调节为最佳性能模式-win7性能,win7运行速度提高90%...
- WordPress the_excerpt()截取摘要长度
- threejs基于vue加载模型,让模型开启自动旋转 模型位置改变
- 人工智能实验-动物识别系统
- 在clubof.net上建立了个人主页
- papers-06-07
- 新型勒索软件Phobos利用弱安全性***目标
- 失眠尽快入睡小妙招,这些助眠产品让你一招入睡