1. Poslovni scenariji
Obstajajo statične metode v aplikacijah Spring Framework, ki morajo temeljiti na razredih, ki jih upravljajo kontejnerji, kot je ta:
To bo zagotovo poročalo o java.lang.NullPointerException: null exception.
2. Analiza principov
Statične spremenljivke in razredne spremenljivke niso lastnosti objektov, temveč lastnosti razreda, zato statične metode spadajo v razrede, običajne metode v entitetne objekte (tj. nove objekte), vzmetna injekcija pa instancira objekte v vsebnikih, zato statičnih metod ni mogoče uporabiti.
Uporaba statičnih spremenljivk in razrednih spremenljivk širi obseg uporabe statičnih metod. Statične metode v spomladi niso priporočljive, glavni namen vbrizgavanja odvisnosti pa je omogočiti kontejnerjem, da generirajo primerke objekta in jih nato uporabljajo skozi celotno življenjsko dobo, hkrati pa olajša testiranje.
Ko enkrat uporabiš statično metodo, ni več treba generirati instanc tega razreda, kar otežuje testiranje, in ne moreš več računati na injekcijo za generiranje več primerkov z različnimi odvisnostmi za določen razred, ki je implicitno deljen in je globalno stanje, kar Spring prav tako ne priporoča.
3. Rešitev
1. Dodajte @Autowire metodi gradnje
2. Označuj z @PostConstruct
|