项目中遇到这样一个问题,当时是要写一个工具类,里面有这样的一段话,
MsgTools是工具类,里面有一个属性applicationContext
MsgTools.applicationContext
.getBean(com.cheshangma.operation.wx.service.internal.WeChatServiceImpl.class)
但这样会报错,applicationContext一直是null,不能注入进来,听公司大牛解释就是,加载MsgTools类时,ApplicationContext类还没有被spring代理加载,所以不能注入进MsgTools这个类里面.解决的思路就是要让ApplicationContext这个类先被spring先管理注入,然后在去加载管理MsgTools这个类.
代码如下
package com.cheshangma.operation.wx.common.utils;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
imp