在项目启动时,需要做一些项目启动后的预操作,比如初始化数据进缓存等等。

这时就需要写listener,等监听。在项目启动时把数据缓存进mongodb。

但是这会有一个问题。项目一般都是把各种bean交给spring管理生命周期。如果在监听里面使用

这种方式获取bean的话,报错空指针异常!因为在

public void contextInitialized(ServletContextEvent arg0)

方法里,spring还没有把bean都初始化完成。如果调用就会找不到bean

使用以下方法:

1、ApplicationListener

可以在spring完全启动完后执行异步框架,把从数据库查到的数据缓存进mongodb

注意:

如果使用

或者

@PostConstruct 方法注解

都会造成mongodb还未初始化完成。报错或者用了ExecutorService异步框架的话会一直阻塞等待。

最新文章

  1. 修改 jquery.validate.js 支持非form标签
  2. @autowired和@resource的区别
  3. CentOS安装squid代理服务器
  4. C#中的IEnumable与IEnumator接口的简单理解
  5. 怎么取消 Windows Server 2012 r2 RDP 限制每个用户只能进行一个会话(转)
  6. webstorm搭建node服务器
  7. CoolShell Puzzle攻略[更新隐藏剧情]
  8. ExtJs之工具栏及菜单栏
  9. 最好的程序员都是行动派(成功者不是那些明知赚钱之法还要推三阻四的人。成功者知道轻重缓急,善于把握今天) good
  10. Windows的应用管理工具 PortableApps,Chocolatey和Ninite
  11. js设置元素的onclick传参方法
  12. Ubuntu 散热
  13. 阻止form空表单提交----JavaScript
  14. 原生JavaScript如何解决父元素查找指定类名的子元素的问题
  15. 第一周 动态规划Dynamic Programming(一)
  16. 【C语言编程练习】新娘与新郎
  17. AngularJS:directive自定义的指令
  18. CI框架 -- 核心文件 之 Output.php(输出类文件)
  19. [转]设置银行卡密码的个人bug
  20. Asp.net使用powershell管理hyper-v

热门文章

  1. C++对拍数据生成
  2. [bzoj2561]最小生成树_网络流_最小割_最小生成树
  3. 选择判断语句(switch)
  4. Ionic3错误记录:navigation stack needs at least one root page
  5. JButton点击事件
  6. myEclipse怎样将程序部署到tomcat(附录MyEclipse调试快捷键)
  7. 高速清空linux下文本文件内容
  8. Cocos2D-X2.2.3学习笔记12(瞬时动作)
  9. Javascript基本概念梳理
  10. jQuery通过地址获取经纬度demo