问题:一般情况下自定义类使用@Autowired注解自动注入时 需要在类上加@RestController或@Service之类的注解,如果只是自定义类使用@Autowired时 会创建对象为null
例如:
public class HttpConnectManager {
@Autowired
private Environment env; //注入对象为 null
public String doGetAndSession(String url, String token, RedisUtils redisUtils) throws Exception{
String retryCount = env.getProperty("wechatProy.retryCount"); //报空指针异常
}
}
解决办法:
public class HttpConnectManager {
public static HttpConnectManager httpConnectManager; //创建当前类对象
@Autowired
private Environment env; //注入
@PostConstruct
public void init() {
httpConnectManager = this;
httpConnectManager.env = this.env;
}
public String doGetAndSession(String url, String token, RedisUtils redisUtils) throws Exception{
String retryCount = httpConnectManager.env.getProperty("wechatProy.retryCount");
}
}
注意:调用时应 httpConnectManager.env.getProperty("wechatProy.retryCount");