Sto cercando di impostare il valore di una stringa in un bean spring utilizzando @Value
, quando la mia origine di proprietà è una sottoclasse di PropertyPlaceholderConfigurer
. Qualcuno sa come fare questo?Utilizzo di spring3 @Value per accedere ai valori di PropertyPlaceholderConfigurer?
risposta
Sei riuscito a farlo funzionare iniettando esplicitamente il valore dal file di definizione bean utilizzando la sintassi della proprietà? In teoria, se funziona, dovresti essere in grado di usare la stessa espressione in @Value
. Per questo, dovresti essere in grado di farlo utilizzando @Autowired @Qualifier
anche
Non credo sia possibile accedere alle proprietà caricate da PropertyPlaceHolderConfigurer
utilizzando SPEL in un'annotazione @Value
. Sarebbe bello, ma per quanto ne so, la cosa migliore da fare è quella di dichiarare:
<util:properties id="props" location="classpath:xxx/yyy/app.props"/>
Può indicare le stesse proprietà file come PropertyPlaceHolderConfigurer
.
Vecchia domanda, ma vale ancora la pena di rispondere. È possibile utilizzare l'espressione nello stesso modo in cui si usa l'originale PropertyPlaceholderConfigurer
.
app.properties
app.value=Injected
app-context.xml
<bean id="propertyConfigurer" class="MyPropertyPlaceholderConfigurer">
<property name="location">
<value>file:app.properties</value>
</property>
</bean>
nel chicco di destinazione
@Value(value="${app.value}")
private String injected;
testato questo approccio usando Primavera 3.0.6
Il numero extra {{}} è un po 'inutile (fa una valutazione SpEL di una stringa statica). A partire da Spring 3.x, la sintassi $ {app.value} è supportata nelle annotazioni @Value e può essere utilizzata per iniettare la proprietà (ma probabilmente non era al momento in cui è stata posta la domanda). – MikeN
Hai ragione riguardo al numero # {...} extra. Puoi ometterlo e otterrai lo stesso risultato. Correggerò la mia risposta per sbarazzarmene. – micfra
- 1. Utilizzo di get() e put() per accedere ai valori dei pixel in OpenCV per Java
- 2. primavera @Configuration con PropertyPlaceholderConfigurer fagioli non risolve annotazione @Value
- 3. come accedere ai valori dell'array protetto?
- 4. accedere ai valori del seguente JSON
- 5. Utilizzo delle chiavi variabili per accedere ai valori in JavaScript oggetti
- 6. Come accedere ai valori dei pixel di CV_32F/CV_64F Mat?
- 7. Utilizzare PropertyPlaceholderConfigurer con Elenco
- 8. Come accedere ai valori creati da serializeArray in JQuery?
- 9. Utilizzo di FragmentManager per accedere ai metodi di frammento da un'attività
- 10. Come accedere ai vecchi e ai nuovi valori prima di inoltrare con jeditable
- 11. Come accedere ai valori dei parametri predefiniti tramite Scala reflection?
- 12. Best practice per iniettare applicationContext in Spring3
- 13. Utilizzo di .htaccess per limitare l'accesso ai file
- 14. Groovy: Come accedere ai valori già impostati in DataSource
- 15. Come accedere ai valori dell'intervallo (auto) di Gnuplot e modificarli per aggiungere un margine?
- 16. Spring Jndi Context e PropertyPlaceholderConfigurer
- 17. PHP - Accesso ai valori di array multidimensionali
- 18. Come accedere ai valori da fetchedXML quando si utilizzano alias per gli attributi in CRM Dynamics?
- 19. Accesso ai valori enum di un'altra classe
- 20. Utilizzo di tweepy per accedere all'API di streaming di Twitter
- 21. primavera PropertyPlaceholderConfigurer e il contesto: proprietà-segnaposto
- 22. Utilizzo dell'account Google per accedere
- 23. Come accedere ai membri statici di Global.asax?
- 24. come accedere ai dati interni di jquery?
- 25. Come accedere ai figli di un ItemsControl?
- 26. Come accedere ai dati. L'esercizio di lavoro
- 27. accedere ai membri privati di plugin jQuery
- 28. Qualsiasi libreria Python per accedere ai Quickbooks?
- 29. Parentesi intorno ai valori di ritorno - perché?
- 30. Come utilizzare SharedAccessSignature per accedere ai BLOB
Puoi crea anche il tuo oggetto PropertyPlaceHolde rConfigurer che espone le sue proprietà. Puoi trovare un esempio di questo qui: http://mortarproject.svn.sourceforge.net/viewvc/mortarproject/src/trunk/mortar-core/src/main/java/org/mortar/spring/beans/factory/config /EnhancedPropertyPlaceholderConfigurer.java?revision=70&view=markup Dovrai registrarlo usando il vecchio invece del più recente in modo da poter impostare un id e quindi riferirlo nel tuo valore tag come @Value (# {xxx.properties ['foo.bar']}) –
pakman
Non penso che sia necessario inserire il nome del file xxx.properties, molla carica tutti i file delle proprietà, devi solo assicurarti che la tua chiave è unica tra tutti i file delle proprietà. – Ashish
Questo non è corretto. A partire dalla primavera 3 è possibile accedere ai valori di PropertyPlaceHolderConfigurer utilizzando SPEL. –