2017-03-04 7 views
2

나는 이와 같은 Java Spring Configuration 클래스를 가지고있다. 내 bean의 여러 변수가 의존하는 변수를 설정하고 bean으로 변환하여 종속 변수로 사용하려고합니다. setVariable() 메소드를 먼저 수행하려면 어떻게해야합니까? Guice에서이 코드를 재정의 한 'Configuration'메소드에서 설정 한 코드를 변환하고 있습니다. 봄에는 그런 것이 있습니까?스프링 설정에서 공통 변수 설정

@Configuration 
class SpringConfiguration{ 
    String variable; 

    public void setVariable(){ 
     variable = System.getenv("whatever") 
    } 

    @Bean 
public void variable(){ 
    return variable; 
} 

    @Bean 
    public void myService(){ 
     return new MyService(variable); 
    } 

    @Bean 
    public void myService2(){ 
     return new MyService2(variable); 
    } 
+0

[빈 초기화가 완료된 후 메서드를 호출하는 방법?] (http://stackoverflow.com/questions/1088550/how-to-call-a-method-after-bean-initialization-is- 완전한) – Jeremy

답변

3

당신은 같은 것을 할 수 있습니다 : 당신이 variableservice1service2 전에 초기화 될 것이라고 보장 할 수처럼

@Configuration 
class SpringConfiguration { 

    @Bean(name="variable") 
    public String geVariable() { 
     return System.getenv("whatever"); 
    } 

    @Bean 
    @DependsOn("variable") 
    public MyService getMyService() { 
     return new MyService(geVariable()); 
    } 

    @Bean 
    @DependsOn("variable") 
    public MyService2 getMyService2() { 
     return new MyService2(geVariable()); 
    } 
} 

을,이 경우 DependsOn는 설명 목적으로 그냥 있습니다.