2016-11-02 2 views
-1

ich auf Konfigurationseigenschaften faul wahr oder falsch ist, basierend definieren möge, zB unterFrühling Faul wahr oder falsch ist, basierend auf einer Eigenschaft

import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.Lazy; 
import org.springframework.context.annotation.PropertySource; 


@Configuration 
@PropertySource({"classpath:simple.properties"}) 
public class SimpleConfiguration { 

    @Value("${simplebean.lazy.init}") 
    private boolean lazyInit; 

    @Bean 
    @Lazy() //How to add the lazyInit config here? 
    public SimpleBean getSimpleBean(){ 
     return new SimpleBean(); 
    } 

    public static class SimpleBean{ 
    }; 

} 

Ich kann diese Definition im Kontext XML, zu dem Grunde externalisieren faul Option ist einfache Bean ist eigentlich ein Cache, so dass ich nicht wollen, um den Cache zu laden, es sei denn, erste Anforderung, um es in einigen evironments gemacht

Antwort

1

Sie können dies die Bereitstellung 2 Konfigurationen erreichen, und diejenigen, die Initialisierung basierend auf Eigenschaftswert mit:

@Configuration 
@ConditionalOnProperty(value = "simplebean.lazy.init", havingValue="true") 
@PropertySource({"classpath:simple.properties"}) 
public class LazySimpleConfiguration { 


    @Bean 
    @Lazy(true) 
    public SimpleBean getSimpleBean(){ 
     return new SimpleBean(); 
    } 

    public static class SimpleBean{ 
    }; 

} 


@Configuration 
@ConditionalOnProperty(value="simplebean.lazy.init", havingValue="false") 
@PropertySource({"classpath:simple.properties"}) 
public class SimpleConfiguration { 


    @Bean 
    @Lazy(false) 
    public SimpleBean getSimpleBean(){ 
     return new SimpleBean(); 
    } 

    public static class SimpleBean{ 
    }; 

} 
Verwandte Themen