1. Scenarii de afaceri
Există metode statice în aplicațiile Spring Framework care trebuie să se bazeze pe clase gestionate de containere, cum ar fi aceasta:
Acest lucru va raporta cu siguranță java.lang.NullPointerException: null exception.
2. Analiza principiilor
Variabilele statice și variabilele de clasă nu sunt proprietăți ale obiectelor, ci proprietăți ale unei clase, astfel încât metodele statice aparțin claselor, metodele obișnuite obiectelor entitate (adică obiecte noi), iar injecția cu arc instanțiază obiecte în containere, astfel încât metodele statice nu pot fi folosite.
Utilizarea variabilelor statice și a variabilelor de clasă extinde aria de aplicare a metodelor statice. Metodele statice nu sunt recomandate primăvara, iar scopul principal al injectării de dependențe este de a permite containerelor să genereze instanțe ale unui obiect și apoi să le folosească pe tot parcursul vieții lor, făcând totodată testarea mai ușoară.
Odată ce folosești metoda statică, nu mai trebuie să generezi instanțe ale acestei clase, ceea ce face testarea mai dificilă, și nu te poți baza pe injectare pentru a genera mai multe instanțe cu dependențe diferite pentru o anumită clasă, care este implicit partajată și este o stare globală, ceea ce nici acesta nu este recomandat de Spring.
3. Soluție
1. Adaugă @Autowire metodei de construcție
2. Adnotează cu @PostConstruct
|