• 自定义项目启动初始化信息的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还没有被扫描到,就自然会报错了。

     
  • 相关阅读:
    Linux安装nginx
    linux目录结构
    Django-admin
    celery
    Flask-Migrate
    Flask-Script
    Flask-SQLAlchemy
    SQLAlchemy
    mongodb的增删改查
    websocket的加密和解密过程
  • 原文地址:https://www.cnblogs.com/goxcheer/p/9387492.html
Copyright © 2020-2023  润新知