Estoy tratando de configurar una clase con una configuración basada en anotaciones en la primavera 3, que toma valores primitivos como sus argumentos de constructor:de primavera: la inyección de constructor de valores primitivos (propiedades) con configuración basada en anotación
@Component
class MyBean {
MyBean(String arg1, String arg2) {
// ...
}
}
Y un contexto de aplicación de esta manera:
<beans [...]>
<context:component-scan base-package="com.example" />
<context:property-override location="/WEB-INF/example.properties" />
</beans>
estoy tratando de encontrar alguna manera de especificar que los argumentos del constructor deben ser tomadas desde el archivo de propiedades. Aparentemente, esto funciona con constructores que toman beans regulares (por ejemplo, MyClass(Bean bean1, OtherBean bean2)
), pero solo propiedades?
También intenté anotar los argumentos del constructor con la anotación @Value
de Spring 3 y una expresión EL para el valor, como @Value("#{prop.Prop1}") arg1
, pero parece que tampoco funciona.
¿El archivo de propiedades tendrá "myBean.prop1 = foo" o solo "prop1 = foo"? Es decir, ¿las propiedades están delimitadas por el nombre del bean? –
El archivo de propiedad tendrá 'prop1 = foo'. Si necesita 'myBean.prop1 = foo', escriba' @Value ("$ {myBean.prop1}") '. Es la forma en que funciona ' '. –
axtavt