tipos suggestion formulario atributo spring properties dependency-injection

spring - suggestion - Propiedades de primavera(propiedad-placeholder) autowiring



placeholder textbox (5)

Tengo en mi aplicaciónContext.xml

<context:property-placeholder location="classpath*:*.properties" /> <bean id="clientPreferencesManager" class="pl.bildpresse.bildchat2.business.ClientPreferencesManager" > <property name="clientApiUrl" value="${clientapi.url}" /> </bean>

¿Es posible hacer lo mismo por autowire? Algo como :

@Autowired @Qualifier("${clientapi.url}") public void setClientApiUrl(String clientApiUrl) { this.clientApiUrl = clientApiUrl; }


De acuerdo. Acabo de recibirlo. Necesitas agregar @Autowired Algo como:

@Autowired @Value("${clientapi.url}") private StringValueResolver resolver;

Estoy usando spring 3.0.0.RELEASE

Aclamaciones


Me tomó un tiempo entender por qué no funcionó. Siempre usé un # lugar de un $ . Siempre recibí el mensaje:

EL1008E:(pos 0): Field or property ''secretkey'' cannot be found on object of type ''org.springframework.beans.factory.config.BeanExpressionContext''

Solo tuve que cambiarlo de:

@Value("#{secretkey}'')

a

@Value(''${secretkey}'')

Espero que esto ahorre el tiempo de alguien.


Mi solución es usar

<context:property-override location="classpath:clientapi.properties" />

y luego en el archivo clientapi.properties

clientPreferencesManager.clientApiUrl=http://localhost:8084/ClientAPI/resources/

Éste también es bueno


Para la primavera 3.0, la forma correcta es la que se muestra: usando @Value("${expression}")

Para la primavera pre-3.0, puedes probar:

@Autowired private StringValueResolver resolver;

No hubo problemas de inicialización de contexto aquí, pero no estoy seguro de que funcionará. Usando el resolutor puedes resolver propiedades.


Puedes usar @Value :

@Value("${clientapi.url}") public void setClientApiUrl(String clientApiUrl) { this.clientApiUrl = clientApiUrl; }