zoukankan      html  css  js  c++  java
  • spring容器启动完成后加载自定义逻辑

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

    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; } }
  • 相关阅读:
    时间复杂度和空间复杂度
    七、vue计算属性
    六、vue侦听属性
    四、vue派发更新
    五、vue nextTick
    三、vue依赖收集
    二、vue响应式对象
    递归
    链表
    TypeScript类型定义文件(*.d.ts)生成工具
  • 原文地址:https://www.cnblogs.com/yln20170705/p/10949845.html
Copyright © 2011-2022 走看看