日期:2014-05-18  浏览次数:20668 次

关于spring和ServletContextListener
ServletContextListener在sping之前启动,如果在ServletContextListener里启动一些东西,那这些东西都不能用spring的注入了,有没有好办法呀

------解决方案--------------------
这有影响吗?
------解决方案--------------------
那就在ServletContextListener.contextInitializedcontextInitialized(ServletContextEvent servletContextEvent)不要使用spring注入。一般来说ServletContextListener启动的时候只是做一些初始化的工作,或者初始化一些常量/memcache,或者把库里的信息放到内存之中;这些操作一般没有必要用spring注入来实现;
如果实在有些创建实例的工作,可以在启动时候调用一个自定义的管理类xxxManage.start(),然后注入工作在xxxManage用spring去做。出现这样的问题,是代码结构的不合理。
------解决方案--------------------
首先你要明确的是spring也是通过ServletContextListener来加载配置的xml文件
你的意思是你自己写了一个类来实现ServletContextListener?然后这个类在spring的类之前加载?