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

 

原文地址:https://www.cnblogs.com/goxcheer/p/9387492.html

时间: 2024-11-09 00:20:23

自定义项目启动初始化信息的listener报错的相关文章

vue 项目启动时npm run dev 报错

PS D:\VS-workpase\maishou-c> npm install [email protected] > [email protected] install D:\VS-workpase\maishou-c\node_modules\node-sass> node scripts/install.js Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win

maven工程根项目运行ok但是子项目就报错的解决办法

正常启动没错 项目出现问题 maven工程根项目运行ok但是子项目就报错 报错信息是xxxx没有创建 解决办法 原来是子项目的依赖少了  没有配置1.8  所以会出现莫明其妙的bug 原文地址:https://www.cnblogs.com/july7/p/11964410.html

node启动时, listen EADDRINUSE 报错;

1.启动时, listen  EADDRINUSE 报错: 查看是因为 端口被占用了,换了端口 还是不行:      查看了 被占用的端口,端口没有为:4000: 突然想到,每次启动node服务后,都没有关闭: 于是,查看任务进程,把node.js进程关闭后,重新启动 node环境即可!

将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'puyang.ServiceType' doesn't exist

将一模一样的项目从win迁移到到linux上报错: 一开始还是以为是linux不能识别hql语句,查找资料发现是因为Liunx服务器上mysql是区分大小写的,而本地是不区分的如:代码是这样写的 @Entity@Table(name = "users") 数据库建的表名称是Users,那么就会出现以上异常. 将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcepti

Vue 项目: npm run dev b报错 “'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”

前提: 电脑已经安装了nodeJS和npm,  项目是直接下载的zip包. 报错步骤为1:cd /d 目录: 2. npm ren dev  -------> 报错如下: > webpack-dev-server --inline --progress --config build/webpack.dev.conf.js 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序或批处理文件.npm ERR! code ELIFECYCLEnpm ERR! errno 1

项目中的报错信息,maven报错等的总结

Maven是一个自动化的构建和管理工具.在项目开发中,如果遇到了错误(红叉),一般有如下的解决方法: 1.java.lang.UnsatisfiedLinkError: E:\apache-tomcat-7.0.52\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform 遇到以上的情况,http://www.apache.org/dist/tomcat/tomcat-connectors/native/ 到该

.NET Window服务启动又马上停止,报错IO.FileNotFoundException

最近公司需要开发一个Window服务推送系统,读取MongoDB写入消息队列,推送到各终端平台 但是在开发完成,最后的部署阶段,选中服务右击启动 看似正常,服务显示已启动(但实质已经被终止,因为Window服务列表需要刷新才更新最新状态) 但是观察数据状态一直没有更新,消息也没有推送成功,才发现在windows系统日志中,有两个报错 在这两个错误页面看了一遍又一遍,又没标明具体哪儿错了,为啥终止,开始苦恼~~~ 直到后来发现,上图中红色框住的部分,可以Ctrl+A全选,然后Ctrl+C,再Ctr

Error:NFS启动无法绑定IPV6地址报错

NFS服务启动时无法绑定ipv6地址 在测试NFS的时候,突然发生了从未有过的错误,故障信息如下,为此特地描述一下排错的过程,供同行参考: info:[[email protected] ~]# service nfs startStarting NFS services:                                     [  OK  ]Starting NFS quotas:                                       [  OK  ]S

【vue】vue项目中服务器跑不起来 报错 listen EACCES: permission denied 3000--hot

报错截图如下 1.解决过程: 一开始只在vscode终端看到了最先面的报错信息,如下图: 看不出个所以然 网络搜索一番后,有如下类似问题的解决方案 npm cache clean --force 手动删除node-module文件夹 npm i npm run dev 结果还是不行,着急之际,滚动了一下鼠标 看到了完整的报错信息 发现是端口号不对 把3000选中改成了3001 还是同样的报错 正无奈 发现原来是端口号跟 --hot之间少了一个空格....... 鬼知道我拷贝之前的可以完好运行的项