zoukankan      html  css  js  c++  java
  • 自定义项目启动初始化信息的listener报错

    自定义初始化组件代码如下:

    @Component
    public class InitComponent implements ServletContextListener, ApplicationContextAware {
    
        private static ApplicationContext applicationContext;
    
    
        @Override
        public void contextInitialized(ServletContextEvent servletContextEvent) {
            ServletContext sc = servletContextEvent.getServletContext();
            //设置博主信息
            BloggerService bloggerService = (BloggerService) applicationContext.getBean("bloggerService");   //错误处
            Blogger blogger = bloggerService.getBlogger();
            blogger.setPassword(null);
            sc.setAttribute("blogger", blogger);
    
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent servletContextEvent) {
    
        }
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            this.applicationContext = applicationContext;
        }
    } 

        写这段代码并且将其配在web.xml的listener中,用意在于项目启动的时候通过监听就初始化一些信息,

        但是每次启动错误处就会报NullPoint异常,经过排查才知道:

        Spring在项目启动时扫描注解配置的Bean是有顺序的,具体顺序是ApplicationContext.xml的顺序,

        问题就出在这,当扫描到这个类时如果BloggerService还没有被扫描到,就自然会报错了。

     
  • 相关阅读:
    201141 live the lie until the lie becomes your life
    my php & mysql FAQ
    suger日料财务
    python 应用thrift thrift的监控fb303
    cherryPy学习
    my linux FAQ
    Javascript无阻塞加载方法
    设计模式学习笔记之组合模式模式
    【转】cookie
    C# 多线程
  • 原文地址:https://www.cnblogs.com/goxcheer/p/9387492.html
Copyright © 2011-2022 走看看