Tratando de propiedades de auto-alambre a un grano en la primavera 3.0.5.RELEASE, estoy usando:primavera 3.0.5 no evalúa anotación @Valor de propiedades
config.properties
:username=myusername
main-components.xml
:<context:property-placeholder location="classpath:config.properties" />
MiClase:
@Service public class MyClass { @Value("${username}") private String username; ... }
Como resultado, nombre de usuario consigue el sistema de literalmente"${username}"
, por lo que la expresión no consigue analizados. Mis otras dependencias auto-cableadas en esta clase se configuran y Spring no lanza ninguna excepción. También traté de agregar @Autowired
pero no sirvió.
Si analizo propiedades a un bean separado y luego usar @Autowired
+ @Qualifier
, funciona:
<bean id="username" class="java.lang.String">
<constructor-arg value="${username}"/>
</bean>
Alguna idea de cómo utilizan simplemente @Value
? Tal vez necesito incluir alguna dependencia de primavera que no tengo? Gracias
¿Estás seguro de que tienes '' en el mismo contexto de aplicación que tu bean 'MyClass' (no en el contexto principal)? –
axtavt
Tienes razón. Moví desde el contexto definido por ContextLoaderListener al contexto de servlet. Ahora mis valores se analizan. ¡Muchas gracias! –
bastante útil hacer aquí es establecer ignorar-reemplazables-marcadores de posición en falso - por lo tanto, la aplicación fallará si no puede resolver los titulares de lugar - que es lo que su problema fue –