Heim > Java > javaLernprogramm > Hauptteil

Wie fügt man Eigenschaften aus externen Quellen in annotierte Spring Beans ein?

DDD
Freigeben: 2024-11-13 14:01:02
Original
546 Leute haben es durchsucht

How to Inject Properties from External Sources into Annotated Spring Beans?

Externe Eigenschaften in annotierte Spring Beans einfügen

Beim Konfigurieren von Spring Beans durch Annotationen ist es notwendig, Eigenschaftswerte aus externen Quellen einzufügen. In diesem Artikel geht es um die Frage, wie ein Eigenschaftswert in eine Bean eingefügt werden kann, die mithilfe von Annotationen konfiguriert wurde.

Der bereitgestellte Code zeigt eine Spring-Bean, PersonDaoImpl, die durch Annotationen ohne explizite Definition in der Spring-XML-Datei konfiguriert wurde. Es besteht jedoch die Notwendigkeit, eine Eigenschaft aus app.properties in diese Bean einzufügen.

Traditionell würde dies dadurch erreicht, dass die Eigenschaft in der XML-Datei definiert und ein PropertyPlaceholderConfigurer verwendet wird, um den Wert aus der externen Datei zu lesen. Da die Bean jedoch durch Annotationen definiert wird, ist dieser Ansatz nicht möglich.

Um dieses Problem zu beheben, bietet Spring in Spring 3 eine Lösung mit EL-Unterstützung an. Der folgende Code veranschaulicht die Idee:

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {

    @Value("#{systemProperties.databaseName}")
    public void setDatabaseName(String dbName) { ... }
}
Nach dem Login kopieren

In diesem Beispiel ist systemProperties ein implizites Objekt, das den Zugriff auf Systemeigenschaften ermöglicht. dbName wird dann mit dem Wert der Systemeigenschaft „databaseName“ injiziert.

Ähnlich können andere Beans mithilfe von EL-Ausdrücken injiziert werden. Zum Beispiel:

@Value("#{strategyBean.databaseKeyGenerator}")
public void setKeyGenerator(KeyGenerator kg) { ... }
Nach dem Login kopieren

Hier wird davon ausgegangen, dass strategyBean eine Spring-Bean ist und ihre Eigenschaft „databaseKeyGenerator“ in die aktuelle Bean eingefügt wird.

Spring ermöglicht auch die Einfügung von Eigenschaften aus einer Properties-Objekt:

@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;
Nach dem Login kopieren

In diesem Beispiel wird eine Eigenschaft aus dem myProperties-Objekt in das Feld eingefügt githubOauthClientId.

Das obige ist der detaillierte Inhalt vonWie fügt man Eigenschaften aus externen Quellen in annotierte Spring Beans ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage