2010-11-22 10 views
5

Por lo tanto, tener algo como esto en uno de mis archivos de Java:conversión de creación de frijol de Boole a booleano utilizando Spring

@Resource(name = "initializationCache") 
Boolean initializationCache; 

En un archivo de configuración, tengo esto:

<bean id="initializationCache" class="java.lang.Boolean"> 
    <constructor-arg value="${initialization.cache}" /> 
</bean> 

Cómo sería Voy a hacer que esto funcione usando un booleano primitivo?

+0

Eso es básicamente, el autoboxing desunirá 'Boolean' a' boolean'. –

+0

Pero preferiría que la initializationCache fuera por defecto a false si por alguna razón la configuración no se tira a la derecha. Como es ahora, será nulo, creo. – AHungerArtist

+0

¿Qué sucede si simplemente cambia 'Boolean' a' boolean' en su código Java? –

Respuesta

2

supongo un camino a seguir sería declarar un regulador de Boolean tipo y dejar que se asigna el valor a un campo de boolean tipo, es decir

boolean initializationCache; 

@Resource(name = "initializationCache") 
public void setInitializationCache(Boolean b) { 
    this.initializationCache = b; 
} 

I no han probado que aunque.

+0

Sí, eso podría funcionar, aunque me gustaría hacer un cheque nulo, creo. De hecho, encontré una solución diferente que era más específica para mi aplicación en particular, pero esta respuesta parece ser probablemente la mejor manera para pre 3.0 Spring. – AHungerArtist

9

En primavera 3 puede hacerlo sin intermedio de granos utilizando @Value:

@Value("${initialization.cache}") 
boolean initializationCache; 
+0

¿Hay alguna manera? sin ir a la primavera 3? – AHungerArtist

+0

@AHungerArtist: Creo que no. – axtavt

+0

Gracias. Subí desde que esta hubiera sido una buena respuesta si estuviese en 3.0+. – AHungerArtist

Cuestiones relacionadas