2017-10-03 2 views

답변

4

예, 삽입 콩은 조건부로 가능합니다. 그러나 여러 가지 방법이 있지만 프로필을 사용하는 것이 좋습니다.

이 기능을 사용하면 프로필에 따라 같은 시간에 더 많은 익명의 콩을 가질 수 있습니다.

@Bean 
@Profile("!dev") 
public class MyClass1 implements MyInterface {} 

@Bean 
@Profile("dev") 
public class MyClass2 implements MyInterface {} 

당신은 자바 구성 클래스에 사용하여 프로파일을 구성 할 수 있습니다

@Configuration 
public class MyWebApplicationInitializer implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     servletContext.setInitParameter("spring.profiles.active", "dev"); 
    } 
} 

그런 다음 주석 @Autowired이 활성 프로파일을 기반으로 주입하는 적절한 구현을 찾을 수 있습니다. Baeldung's websize에서 더 많은 내용을 읽어 보았습니다.


번째 방법은 조건부 인터페이스 구현 Condition의 복귀 방식에 기초하여 빈을 주입 @Conditional 주석을 사용하는 것이다.

public class MyClass1Condition implements Condition { 

    @Override 
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { 
     // perform your logic 
    } 
} 
+0

내가 방법 수준에서 뭔가를 할 수 있습니다 : 여기

@Bean @Conditional(MyClass1Condition.class) public class MyClass1 implements MyInterface {} @Bean @Conditional(MyClass2Condition.class) public class MyClass2 implements MyInterface {} 

는 구현 골격의 모습 어떻게? – masSdev

+0

답변을 수정했습니다. –