1. Affärsscenarier
Det finns statiska metoder i Spring-ramverk som måste förlita sig på klasser som hanteras av containrar, som dessa:
Detta kommer definitivt att rapportera java.lang.NullPointerException: null exception.
2. Principanalys
Statiska variabler och klassvariabler är inte egenskaper hos objekt, utan egenskaper hos en klass, så statiska metoder tillhör klasser, vanliga metoder tillhör entitetsobjekt (dvs. nya objekt), och spring injection instansierar objekt i behållare, så statiska metoder kan inte användas.
Användningen av statiska variabler och klassvariabler utökar användningsområdet för statiska metoder. Statiska metoder rekommenderas inte på våren, och huvudsyftet med beroendeinjektion är att låta behållare generera instanser av ett objekt och sedan använda dem under hela deras livstid, samtidigt som testning blir enklare.
När du använder den statiska metoden behöver du inte längre generera instanser av denna klass, vilket gör testningen svårare, och du kan inte förlita dig på injektion för att generera flera instanser med olika beroenden för en given klass, som implicit delas och är ett globalt tillstånd, vilket heller inte rekommenderas av spring.
3. Lösning
1. Lägg till @Autowire till konstruktionsmetoden
2. Annotera med @PostConstruct
|