J'essaie de définir la valeur d'une chaîne dans un haricot de printemps en utilisant @Value
, lorsque ma source de propriété est une sous-classe de PropertyPlaceholderConfigurer
. Quelqu'un sait-il comment faire ça ?L'utilisation de spring3 @ Value pour accéder aux valeurs de PropertyPlaceholderConfigurer?
Répondre
Avez-vous réussi à le faire fonctionner en injectant explicitement la valeur du fichier de définition du bean en utilisant la syntaxe de la propriété? En théorie, si cela fonctionne, vous devriez pouvoir utiliser la même expression dans @Value
. Pour cela, vous devriez pouvoir le faire en utilisant @Autowired @Qualifier
aussi
Je ne pense pas qu'il soit possible d'accéder aux propriétés chargées par PropertyPlaceHolderConfigurer
en utilisant SPEL dans une annotation @Value
. Ce serait formidable, mais pour autant que je sache, la meilleure chose est de déclarer:
<util:properties id="props" location="classpath:xxx/yyy/app.props"/>
Il peut pointer vers les mêmes propriétés que votre fichier PropertyPlaceHolderConfigurer
.
Question ancienne, mais qui mérite toujours d'être répondue. Vous pouvez utiliser l'expression de la même manière que vous le feriez avec l'original PropertyPlaceholderConfigurer
.
app.properties
app.value=Injected
app-context.xml
<bean id="propertyConfigurer" class="MyPropertyPlaceholderConfigurer">
<property name="location">
<value>file:app.properties</value>
</property>
</bean>
dans la fève cible
@Value(value="${app.value}")
private String injected;
testé cette approche avec Spring 3.0.6
L'extra # {...} est en quelque sorte inutile (il fait une évaluation SpEL d'une chaîne statique). Depuis Spring 3.x, la syntaxe $ {app.value} est supportée dans les annotations @Value, et peut être utilisée pour injecter la propriété (mais ce n'était probablement pas le cas au moment où cette question a été posée). – MikeN
Vous avez raison concernant le supplément # {...}. Vous pouvez l'omettre et vous obtiendrez le même résultat. Je corrigerai ma réponse pour m'en débarrasser. – micfra
- 1. Comment accéder aux mesures cachées KPI Value via ADOMD.NET?
- 2. Accéder aux contrôles Valeurs avant de terminer Page de chargement
- 3. vb6: accéder aux valeurs du registre
- 4. Comment accéder aux autres valeurs de contrôles dans ITemplate?
- 5. Django annoter avec des valeurs: comment accéder aux valeurs?
- 6. hibernate search + spring3 + jpa
- 7. Comment accéder aux valeurs stockées dans NSMutableArray de NSMutableDictionary?
- 8. Java-Hibernate-Newbie: Comment accéder aux valeurs de cette liste?
- 9. Comment puis-je accéder aux valeurs de `Series.Values` (tableau Excel)
- 10. WebSphere et PropertyPlaceholderConfigurer
- 11. Spring: Configuration d'un exemple simple de PropertyPlaceholderConfigurer
- 12. PropertyPlaceholderConfigurer vs Filtres - Haricots de printemps
- 13. Syntaxe pour accéder aux variables dans viewstate
- 14. Impossible d'obtenir les valeurs de la propriété Value de HtmlInputHidden
- 15. accéder aux données $ _POST des valeurs d'entrée créées dynamiquement
- 16. Nom NOD pour VALUE?
- 17. Accéder aux informations de vol
- 18. Accéder aux éléments de ce fichier xml
- 19. accéder aux variables javascript
- 20. Groovy: Comment accéder aux valeurs déjà définies dans DataSource
- 21. Accéder aux variables de classe?
- 22. Accéder aux valeurs dans une table has_many: through
- 23. Accéder aux constantes d'API et aux enums de python
- 24. comment définir et accéder aux valeurs variables d'un autre classess
- 25. Accéder aux valeurs des cookies en utilisant sencha extjs
- 26. Comment accéder aux valeurs des éléments imbriqués dans le DOM?
- 27. Accéder aux deux premières valeurs d'un tableau créé par Split?
- 28. accéder aux données de struts2 imbriqué itérateur en action
- 29. Outils de développement pour accéder directement aux bases de données
- 30. Comment accéder aux valeurs du formulaire dynaaction dans jsp
Vous pouvez créez aussi votre propre PropertyPlaceHolde rConfigurer qui expose ses propriétés. Vous pouvez trouver un exemple de ceci ici: 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 Vous devrez l'enregistrer en utilisant l'ancien à la place du plus récent afin de pouvoir définir un identifiant puis le référencer dans votre valeur tag comme @Value (# {xxx.properties ['foo.bar']}) –
pakman
Je ne pense pas que vous devez mettre le nom de fichier xxx.properties, printemps charge tous les fichiers de propriétés, vous devez juste vous assurer que votre clé est unique parmi tous les fichiers de propriétés. – Ashish
Ceci est incorrect. Depuis le printemps 3, vous pouvez accéder aux valeurs PropertyPlaceHolderConfigurer à l'aide de SPEL. –