spring mvc 启动初始化 一些静态变量的service引用
/** * 应用完全启动后, 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] 异常"); } } }