ServletContextListener在sping之前启动,如果在ServletContextListener里启动一些东西,那这些东西都不能用spring的注入了,有没有好办法呀 |
|
10分 |
这有影响吗?
|
有啊,ServletContextListener启动的时候,spring还没有启动,所以你在contextInitialized里启动的东西,都不能使用spring的注入
|
|
有啊,ServletContextListener启动的时候,spring还没有启动,所以你在contextInitialized里启动的东西,都不能使用spring的注入 |
|
spring新手,第一天使用,把以前的项目移植到spring框架,诸多问题 |
|
20分 |
那就在ServletContextListener.contextInitializedcontextInitialized(ServletContextEvent servletContextEvent)不要使用spring注入。一般来说ServletContextListener启动的时候只是做一些初始化的工作,或者初始化一些常量/memcache,或者把库里的信息放到内存之中;这些操作一般没有必要用spring注入来实现;
如果实在有些创建实例的工作,可以在启动时候调用一个自定义的管理类xxxManage.start(),然后注入工作在xxxManage用spring去做。出现这样的问题,是代码结构的不合理。 |
说的有道理,一般我在这里头加载数据,由于数据是更新的,所以我启动了几个定时器,来定时更新数据,定时器里的数据有点复杂,所以我想用spring来给我管理里面相关的对象,所以出现类似的问题, |
|
10分 |
首先你要明确的是spring也是通过ServletContextListener来加载配置的xml文件
你的意思是你自己写了一个类来实现ServletContextListener?然后这个类在spring的类之前加载? |
no,我的class implements ServletContextListener,你可以查查api |
|
已解决了,我不在ServletContextListener中启动定时器了,spring有管理定时器的功能
|
|
额,这不就是我说的 |
|
楼主, 那如果时间是可以动态配置, 根据数据库来改变的你怎么解决? spring中的定时器日期格式比较复杂不能,只能重启服务在后台进行修改,或者在数据库中添加对应的日期, 那得有多复杂? 跪求你的解决方案
|