您的位置:首页 > 编程语言 > Java开发

spring mvc 启动初始化 一些静态变量的service引用

2017-09-15 10:57 302 查看
/**
* 应用完全启动后, Spring执行自定义初始化 此处初始化避免了初始化static时 bean还没注入的问题
*/
spirng mvc xml 文件
<!-- spring环境都初始化完成后执行的一些操作 -->
<bean id="instantiationListener" class ="com.xxx.xxx.web.base.InstantiationListener" />

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;

/**
* 应用完全启动后, Spring执行自定义初始化 此处初始化避免了初始化static时 bean还没注入的问题
*/
public class InstantiationListener implements InitializingBean {

private static final Logger logger = LoggerFactory.getLogger(InstantiationListener.class);
@Autowired
private WechatAccessTokenService wechatAccessTokenService;// 这里注入不会有生存周期的问题

// ==>继承于InitializingBean 的afterPropertiesSet()方法是初始化方法.
@Override
public void afterPropertiesSet() {
try {
System.out.println("init.....初始化微信获取accessToken service....");
JwTokenAPI.wechatAccessTokenService = wechatAccessTokenService; //JwTokenAPI类的静态属性是wechatAccessTokenService
} catch (Exception e) {
logger.error("初始化微信获取accessToken service [wechatAccessTokenService] 异常");
}
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: