배경
- config 클래스 중에
Condition
인터페이스의 구현체가 있었는데, 어떤 용도인지 이해하지 못했다.
Custom Conditions 정의
- 조건부로 빈을 등록할 때
@Conditional
애노테이션을 사용할 수 있다. - 이 애노테이션에서 사용할 조건을 클래스로 만들 수 있다.
class Java8Condition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return JavaVersion.getJavaVersion().equals(JavaVersion.EIGHT);
}
}
- 사용 예
@Service
@Conditional(Java8Condition.class)
public class Java8DependedService {
// ...
}