@autowired注入service为null
今天在一个普通类中注入service时出现了一个问题,我用@autowired注入的service为null。
最终我是通过以下方案解决
1.在类上标注该类为组件也就是@component
2.静态初始化当前类
3.在初始化service的方法上加上注解@postconstruct,这样方法就会在bean初始化之后被spring容器执行
4.调用时通过类来调用
@component
public class logutil {
@autowired
private logservice logservice;
private static logutil logutil; // 静态初使化当前类
public static void savelog(string username, string result) {
log log = new log(username+"", result);
try {
logutil.logservice.add(log);
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
@postconstruct
public void init() {
logutil = this;
logutil.logservice = this.logservice;
}
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论