Spring - Wert in statische Variablen einspritzen

Frühling - Wert in statische Variablen injizieren

In Spring können keine Werte in statische Variablen eingefügt werden. Beispiel:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class GlobalValue {

    @Value("${mongodb.db}")
    public static String DATABASE;


}

Wenn SieGlobalValue.DATABASE ausdrucken, wirdnull angezeigt.

    GlobalValue.DATABASE = null

Lösung

Um dieses Problem zu beheben, erstellen Sie einen statischen Setter "Keine", um den injizierten Wert für die statische Variable zuzuweisen. Zum Beispiel :

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class GlobalValue {

    public static String DATABASE;

    @Value("${mongodb.db}")
    public void setDatabase(String db) {
        DATABASE = db;
    }

}

Ausgabe

    GlobalValue.DATABASE = "mongodb database name"