2010-11-22 17 views
5

Così, ho qualcosa di simile in uno dei miei file Java:Conversione creazione di fagioli booleano booleano utilizzando primavera

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

In un file di configurazione, ho questo:

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

Come sarebbe Vado a fare questo lavoro usando un primitivo booleano?

+0

In pratica, l'autoboxing cancellerà 'Booleano' in' booleano'. –

+0

Ma preferirei impostare l'inizializzazione di default su false se per qualche motivo la configurazione non è stata inserita correttamente. Come ora, sarà nullo, credo. – AHungerArtist

+0

Cosa succede se cambi semplicemente 'Boolean' in' boolean' nel tuo codice Java? –

risposta

2

immagino un modo per andare sarebbe quello di dichiarare un setter di Boolean tipo e lasciare che assegnare il valore a un campo di boolean tipo, ovvero

boolean initializationCache; 

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

Non l'ho provato però.

+0

Sì, potrebbe funzionare, anche se vorrei fare un controllo nullo, penso. In realtà ho trovato una soluzione diversa che era più specifica per la mia particolare applicazione, ma questa risposta sembra probabilmente il modo migliore per la 3.0 Spring. – AHungerArtist

9

a Spring 3 si può fare senza di fagioli intermedio utilizzando @Value:

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

C'è un modo senza andare in primavera 3? – AHungerArtist

+0

@AHungerArtist: penso di no. – axtavt

+0

Grazie. Ho upvoted poiché questa sarebbe stata una buona risposta se fossi su 3.0+. – AHungerArtist

Problemi correlati