Estoy tratando de establecer el valor de una cadena en un bean de primavera usando @Value
, cuando mi fuente de propiedad es una subclase de PropertyPlaceholderConfigurer
. Alguien sabe cómo hacer esto ?¿Utiliza spring3 @Value para acceder a los valores de PropertyPlaceholderConfigurer?
Respuesta
¿Ha logrado que funcione al inyectar explícitamente el valor del archivo de definición de bean utilizando la sintaxis de la propiedad? En teoría, si eso funciona, entonces debería poder usar la misma expresión en @Value
. Por lo demás, debe ser capaz de hacerlo utilizando @Autowired @Qualifier
también
no creo que es posible acceder a las propiedades cargadas por PropertyPlaceHolderConfigurer
utilizando SPEL en una anotación @Value
. Sería muy bueno, pero por lo que yo sé, la segunda mejor opción es declarar:
<util:properties id="props" location="classpath:xxx/yyy/app.props"/>
que puede apuntar a las mismas propiedades de archivo como su PropertyPlaceHolderConfigurer
.
Pregunta anterior, pero todavía vale la pena ser respondida. Puede usar la expresión de la misma manera que lo haría con el PropertyPlaceholderConfigurer
original.
app.properties
app.value=Injected
App-context.xml
<bean id="propertyConfigurer" class="MyPropertyPlaceholderConfigurer">
<property name="location">
<value>file:app.properties</value>
</property>
</bean>
en el bean destino
@Value(value="${app.value}")
private String injected;
Probado este enfoque utilizando Spring 3.0.6
El # {..} extra es inútil (realiza una evaluación de SpEL de una cadena estática). Desde Spring 3.x, la sintaxis de $ {app.value} es compatible con las anotaciones de @Value, y se puede usar para inyectar la propiedad (pero probablemente no era así en el momento en que se hizo esta pregunta). – MikeN
Tiene razón con respecto al # {...} adicional. Puedes omitirlo y obtendrás el mismo resultado. Corregiré mi respuesta para deshacerme de ella. – micfra
- 1. ¿Utiliza Powershell para acceder a los registros de IIS?
- 2. Usar PropertyPlaceholderConfigurer con la lista
- 3. ¿Cómo acceder a los valores de usercontrol desde la página?
- 4. Spring Jndi Context y PropertyPlaceholderConfigurer
- 5. Groovy: Cómo acceder a los valores ya establecidos en DataSource
- 6. ¿Cómo acceder a los valores de fetchedXML cuando se usan alias para los atributos en CRM Dynamics?
- 7. ¿Cómo acceder a los valores de rango de Gnuplot (automático) y modificarlos para agregar un margen?
- 8. El uso de variables claves para acceder a los valores en JavaScript objetos
- 9. ¿Cómo acceder a mis valores de la forma en document.ready
- 10. ¿Cargar propiedades específicas del entorno para usar con PropertyPlaceholderConfigurer?
- 11. ¿Puedo acceder a los valores de una clase enum desde un JSP usando EL?
- 12. Permiso para acceder a sys.dm_db_index_usage_stats
- 13. Acceso a los valores de set()
- 14. Al iterar sobre valores, ¿por qué typeof (value) devuelve "string" cuando value es un número? Javascript
- 15. rutas relativas para acceder a los recursos de rieles
- 16. Necesita iterador cuando se utiliza de base a distancia para los bucles
- 17. URL directas para acceder a los informes: JasperServer
- 18. ¿Hay una clase similar a PropertyPlaceholderConfigurer para usar con Spring que acepta XML?
- 19. ¿Por qué fopen/fgets utiliza tanto mmap como las llamadas al sistema de lectura para acceder a los datos?
- 20. ¿Cómo puedo acceder a los elementos de iframe con Javascript?
- 21. PropertyPlaceholderConfigurer y variables de entorno en archivos .properties
- 22. Acceder a los recursos de JAR
- 23. NHibernate: Significado de los interceptores return value
- 24. Cómo acceder a los atributos usando Nokogiri
- 25. roxygen2 "Error: titlerequires a value"
- 26. cómo acceder casillas de verificación y sus valores con getElementsByName
- 27. diferentes formas de acceder a los valores de atributo utilizando Javascript
- 28. primavera PropertyPlaceholderConfigurer y el contexto: la propiedad-marcador de posición
- 29. No puedo acceder a los valores dentro de mi iFrame me da permiso denegado
- 30. ¿Cómo acceder a los elementos de lista
Puede también crea tu propia PropertyPlaceHolde rConfigurer que expone sus propiedades. Puede encontrar un ejemplo de esto aquí: 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 Tendrás que registrarlo usando el antiguo en lugar del más reciente, para que puedas establecer un id y luego enviarlo a tu etiqueta de valor como @Value (# {xxx.properties ['foo.bar']}) –
pakman
No creo que deba poner el nombre del archivo xxx.properties, el resorte carga todos los archivos de propiedades, solo tiene que asegurarse de que su clave es única entre todos los archivos de propiedades. – Ashish
Esto es incorrecto. A partir de la primavera 3 puede acceder a los valores de PropertyPlaceHolderConfigurer usando SPEL. –