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还没有被扫描到,就自然会报错了。

     
  • 相关阅读:
    阿里巴巴人力资源挖坑 面试技术挑战题
    •••| 卡牌游戏诞生记 |•••
    JavaScript:js-cookie存取
    乘积最大
    最大的算式
    KMP笔记√//找最大子串,前缀自匹配长度
    牛棚回声
    P1027 木瓜地
    P1026 犁田机器人
    P1023 奶牛的锻炼
  • 原文地址:https://www.cnblogs.com/goxcheer/p/9387492.html
Copyright © 2011-2022 走看看