首先,,按照常規的注入,,我們會直接在需要注入的對象上加註解@Autowired,,,運行服務的的時候,,,就會出現呢空指針異常java.lang.NullPointerException,,異常的原因是 靜態變量/類變量不是對象的屬性,而是一個類的屬性,spring則是基於對象層面上的依賴注入.
@Autowired
private static PayLogDao logDao ; // 異常
解決方案
第一種:使用set函數注入
1 @Component
2 public class DemoUtil {
3
4 private static A a;
5 @Autowired
6 public void setLogDao( A a){
7 DemoUtil.a = a;
8 }
9 }
第二種:使用@PostConstructy註解
@Component
2 public class DemoUtil {
3 @Autowired
4 private A a;
5
6 private static DemoUtil demoUtil ;
7 //初始化對象
8 @PostConstruct
9 private void init() {
10 demoUtil = this;
demoUtil .a=this.a//初始化了,,不會爲空