业务需求中,可能会有一些逻辑需要在应用启动完成后,例如字典缓存,资源池初始化等等,代码如下

public class InitApplication implements ApplicationContextAware,ApplicationListener<ContextRefreshedEvent> {

    private Logger logger = LoggerFactory.getLogger(InitApplication.class);

    private  ApplicationContext application;

    @Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
if (!ContextRefreshedEvent.class.getName().equals(contextRefreshedEvent.getClass()
.getName())) {
return;
}
    //在web 项目中(spring mvc),系统会存在两个容器,
    //一个是root application context ,另一个就是 projectName-servlet context(作为root application context的子容器),所以此方法会加载多次
    //以下判断就可以防止多次加载
if (!("Root WebApplicationContext").equalsignorance(event.getApplicationContext().getDisplayName())){
       return;
    }
    //业务逻辑,自行添加
}    //此方法用于获取spring上下文,可以方便的拿取各种bean
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.application = applicationContext;
}
}

spring容器启动完成后加载自定义逻辑的更多相关文章

  1. WEB容器启动——web.xml加载详解

    最近在看spring的源码,关于web.xml文件在容器(Tomcat.JBOSS等)启动时加载顺序问题很混乱,通过搜集资料,得出以下的结论: 1.加载顺序与它们在 web.xml 文件中的先后顺序无 ...

  2. Spring:启动项目时加载数据库数据(总结)

    在项目中需要启动程序时,要将数据库的用户信息表加载到内存中,找到一下几种方式. 1.实现ApplicationListener接口,重写onApplicationEvent方法,可以在项目启动的时候执 ...

  3. 1.Spring项目启动时,加载相关初始化配置

    Spring项目启动时,会加载一些常用的配置: 1.加载spring上下文 SpringApplicationContextUtils.initApplicationContext(event.get ...

  4. Spring 容器中bean的加载过程

    bean 的加载过程大致可以分为以下几个步骤: 1.获取配置的资源文件 2.对获取到的xml资源文件进行解析 3.获取包装资源 4.解析处理包装之后的资源 5.加载 提取bean 并进行注册(添加到b ...

  5. java web项目启动时自动加载自定义properties文件

    首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的 ...

  6. spring boot 启动 开启注解 加载 bean

    业务描述:创建一个cache类然后交给spring 管理. @Component @Scope("singleton") public class Cache { public C ...

  7. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别【转】

    原文地址:https://blog.csdn.net/py_xin/article/details/52052627 ContextLoaderListener和DispatcherServlet都会 ...

  8. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别

    一:ContextLoaderListener加载内容 二:DispatcherServlt加载内容 ContextLoaderListener和DispatcherServlet都会在Web容器启动 ...

  9. 当spring 容器初始化完成后执行某个方法

    在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查. 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出 ...

随机推荐

  1. android 面试汇总<二>

    Animation Q:Android中有哪几种类型的动画? 技术点:动画类型 参考回答: 常见三类动画 View动画(View Animation)/补间动画(Tween animation):对V ...

  2. aria-hidden读屏

    图标的可访问性现代的辅助技术能够识别并朗读由 CSS 生成的内容和特定的 Unicode 字符.为了避免 屏幕识读设备抓取非故意的和可能产生混淆的输出内容(尤其是当图标纯粹作为装饰用途时),我们为这些 ...

  3. python学习笔记:(十一)模块

    模块是指一个包含定义的函数和变量的文件,其后缀名为.py.模块可以被别的程序引用,并使用其中的函数等功能. 1.import语句 如果需要使用模块,只需要在新模块中导入模块.使用import关键字 如 ...

  4. kernel function

    下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...

  5. Centos7 yum 源安装nginx

    一.建立nginx源 vim /etc/yum.repos.d/nginx.repo [nginx]name=nginx repobaseurl=http://nginx.org/packages/c ...

  6. Django的Mov逻辑的管理特色

    Django的MOV逻辑的管理特色 首先我们谈论到一个逻辑上的概念都从它的起点说起,在我看来mov的起点肯定就是Model了,那么Model有什莫特色呢 如果一个项目定义的Django那么Django ...

  7. USACO4.1 Beef McNuggets【数学/结论】

    吐槽/心路历程 打开这道题的时候:*&@#%*#?!这不是小凯的疑惑吗?好像还是个加强版的?我疑惑了.原来$USACO$才是真的强,不知道什么时候随随便便就押中了题目. 对于我这种蒟蒻来说,这 ...

  8. 在redis里面使用lua

    Redis从2.6版本开始引入对Lua脚本的支持,通过在服务器中嵌入Lua环境,Redis客户端可以使用Lua脚本,直接在服务端原子的执行多个Redis命令. lua脚本的好处: 减少网络开销.可以将 ...

  9. mysql——单表查询——其它整理示例00

    ), sname ), sage ), ssex ) ); ','zhaolei','1990-01-01','nan'); ','qiandian','1990-12-21','nan'); ',' ...

  10. [ASP.NET] 解决因为使用 updatepanel 导致 fileupload 始终无法获取文件的方法

    接手了一个新项目,需要在老项目中增添几个新页面 由于在母版页中的updatepanel包住了子版页 同时updatepanel并不支持文件上传,因此要额外增加一些设置 具体的情况可以参考这篇博客 ht ...