Wie übergibt man eine map<String,String> mit der Anwendung.Eigenschaften
Habe ich umgesetzt, einige Berechtigung in einem webservice, der muss konfiguriert werden.
Derzeit die Benutzer - /Passwort-Kombo ist hardcoded in der bean Konfiguration. Ich möchte, konfigurieren Sie die Karte mit Benutzer-und Passwort in die Anwendung.Eigenschaften also, die Konfiguration kann extern sein.
Keine Ahnung, wie dies geschehen kann?
<bean id="BasicAuthorizationInterceptor" class="com.test.BasicAuthAuthorizationInterceptor">
<property name="users">
<map>
<entry key="test1" value="test1"/>
<entry key="test2" value="test2"/>
</map>
</property>
</bean>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
java.util.Eigenschaften
Objekt ist bereits einMap
eigentlich einHashTable
was wiederum implementiertMap
.Also, wenn Sie eine Eigenschaftendatei erstellen (lässt der name es
users.properties
) Sie sollten in der Lage sein, um es zu laden mit einemPropertiesFactoryBean
oder<util:properties />
und injizieren Sie in Ihre Klasse.Dann etwas tun, wie
Obwohl, wenn Sie haben eine
Map<String, String>
als eine Art der Benutzer-Eigenschaft könnte es scheitern... die würde ich nicht setzen Sie Sie in dieapplication.properties
- Datei. Aber das könnte nur sein, mich..Können Sie
@ConfigurationProperties
haben Werte vonapplication.properties
gebunden in einem bean. Tun Sie versehen Ihre@Bean
Methode, schafft die Bohne:Als Teil der bean-Initialisierung, jede Eigenschaft auf
BasicAuthAuthorizationInterceptor
wird festgelegt basierend auf der Applikationsumgebung. Zum Beispiel, wenn das ist Ihre bean-Klasse:- Und dies ist Ihre Anwendung.Eigenschaften:
Dann die
users
Karte aufgefüllt wird mit zwei Einträgen:alice:alpha
undbob:bravo
.Hier ist eine kleine Beispiel-app, das bringt alles zusammen:
Werfen Sie einen Blick auf die javadoc für
ConfigurationProperties
für weitere Informationen über die verschiedenen Konfigurations-Optionen. Zum Beispiel können Sie ein Präfix teilen Sie Ihre Konfiguration in einer Reihe von verschiedenen namespaces:Für die Bindung zu arbeiten, würden Sie dann mit dem gleichen Präfix auf die deklarierten Eigenschaften in der Anwendung.Eigenschaften:
getUsers()
- Methode und dieusers
Feld istprivate
, nichtpublic
.metrics.tagsAsSuffix.jvm.gc=
undmetrics.tagsAsSuffix.jvm.threads=
nicht bekommen, Lesen Sie inMap<String, List<String>>
mit jeder leeren, abermetrics.tagsAsSuffix.jvm
= leere Liste. Der rest der suffix gelöscht wirdkönnen Sie
@Value
.Eigenschaften Datei:
Java-code:
Ich denke, Sie sind auf der Suche nach etwas ähnliches
http://www.codejava.net/frameworks/spring/reading-properties-files-in-spring-with-propertyplaceholderconfigurer-bean
Können Sie wählen Sie Werte aus .Eigenschaften ähnlich und weisen Sie es auf Ihre Karte.