mvc - spring framework pdf español
Spring 3.0.5 no evalúa la anotación @Value de las propiedades (1)
Encontré cuál era el problema. Copiar / pegar de los comentarios:
¿Está seguro de que tiene <context:property-placeholder>
en el mismo contexto de aplicación que su bean MyClass (no en el contexto principal)? - Axtavt
Tienes razón. ContextLoaderListener
<context:property-placeholder>
del contexto definido por ContextLoaderListener
al contexto de servlet. Ahora mis valores son analizados. ¡Muchas gracias! - alex
Tratando de auto-cablear propiedades a un bean en Spring 3.0.5.RELEASE , estoy usando:
config.properties
:username=myusername
main-components.xml
:<context:property-placeholder location="classpath:config.properties" />
Mi clase:
@Service public class MyClass { @Value("${username}") private String username; ... }
Como resultado, el nombre de usuario se establece literalmente en "${username}"
, por lo que la expresión no se analiza. Mis otras dependencias de cableado automático en esta clase se configuran, y Spring no lanza ninguna excepción. También intenté agregar @Autowired
pero no ayudó.
Si analizo las propiedades a un bean separado y luego uso @Autowired
+ @Qualifier
, funciona:
<bean id="username" class="java.lang.String">
<constructor-arg value="${username}"/>
</bean>
¿Alguna idea de cómo usar solo @Value
? Tal vez necesito incluir alguna dependencia de Spring que no tengo? Gracias