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

     
  • 相关阅读:
    POJ 1315 Don't Get Rooked
    POJ 2051 Argus
    POJ 1942 Paths on a Grid
    POJ 2151 Check the difficulty of problems
    POJ 3349 Snowflake Snow Snowflakes
    POJ 1753 Flip Game
    POJ 2392 Space Elevator
    POJ 2385 Apple Catching
    POJ 2356 Find a multiple
    POJ 2355 Railway tickets
  • 原文地址:https://www.cnblogs.com/goxcheer/p/9387492.html
Copyright © 2011-2022 走看看