1. Scenari di business
Esistono metodi statici nelle applicazioni Spring Framework che devono basarsi su classi gestite da container, come questo:
Questo sicuramente riporterà java.lang.NullPointerException: null exception.
2. Analisi dei principi
Le variabili statiche e le variabili di classe non sono proprietà degli oggetti, ma proprietà di una classe, quindi i metodi statici appartengono alle classi, i metodi ordinari appartengono agli oggetti entità (cioè nuovi oggetti), e l'iniezione a molla istanza gli oggetti nei contenitori, quindi i metodi statici non possono essere utilizzati.
L'uso di variabili statiche e di classe amplia l'ambito di applicazione dei metodi statici. I metodi statici non sono raccomandati in primavera, e lo scopo principale dell'iniezione di dipendenza è permettere ai contenitori di generare istanze di un oggetto e poi utilizzarle durante tutta la loro vita, rendendo al contempo più semplice i test.
Una volta usato il metodo statico, non è più necessario generare istanze di questa classe, il che rende i test più difficili, e non si può più fare affidamento sull'iniezione per generare più istanze con dipendenze diverse per una determinata classe, che è implicitamente condivisa ed è uno stato globale, cosa che non è raccomandata da Spring.
3. Soluzione
1. Aggiungere @Autowire al metodo costruttivo
2. Annota con @PostConstruct
|