spring中注解无法修饰静态变量
生活随笔
收集整理的這篇文章主要介紹了
spring中注解无法修饰静态变量
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
背景:使用@value注解為類的靜態(tài)屬性賦值的時候,發(fā)現(xiàn)一直是空。為什么會這樣呢?
Spring 依賴注入 是依賴 set方法,set方法是 是普通的對象方法,也就是類實例化的時候才會賦值,但是static變量是類的屬性,在類被首次加載的時候就已經(jīng)被賦值類,導(dǎo)致spring忽略靜態(tài)變量。
所以如下這種寫法就是錯誤的,這樣是無法注入的,在使用該變量的時候會導(dǎo)致空指針錯誤:
@Autowired private static StudentMapper studentMapper;Spring 依賴注入是依賴set方法,靜態(tài)變量不屬于對象,只屬于類。解決方法就是加上非靜態(tài)的set方法,如下:
private static StudentMapper studentMapper;public StudentMapper getStudentMapper() {return studentMapper; } @Autowired public void setStudentMapper(StudentMapper studentMapper) {this.studentMapper = studentMapper; }?
總結(jié)
以上是生活随笔為你收集整理的spring中注解无法修饰静态变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mabtyis无侵入式编程
- 下一篇: 云原生系列「二」Kubernetes网络