求帮助Spring项目中的Listener的问题

J2EE 码拜 9年前 (2016-05-05) 1389次浏览
目前有这样一个需求:
容器启动的时候,用Listener在数据库中读取一部分参数数据作为缓存
本人现在遇到的问题是:Spring容器在进行初始化的时候,有的类需要注入这些缓存参数,但是缓存Listener启动是在Spring之后的。所以启动的时候就会报错。但是假如把缓存的Listener提前到Spring启动之前,那么缓存Listener中的数据库就连接不上了。使用

WebApplicationContextUtils.getRequiredWebApplicationContext

也会报错。
问一下这个该怎么处理?
以下是本人的部分代码
配置文件部分

.......................
<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 缓存远程地址参数 -->
<listener>
	<listener-class>com.tdt.ts.management.service.listener.CacheRemoteConfListener</listener-class>
</listener>
..............................

有一个controller注入一个Service时,需要这个缓存参数。就是这样

class clotroller{
@Autowrite
Test test;
}
// 这个Test需要缓存参数
class Test {
static{
// 使用缓存参数
}
}
解决方案

40

试试对Test做 lazy-init 看能否解决问题

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助Spring项目中的Listener的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)