728x90

     

    스프링에서는 특정 property가 없으면 제외할 수 bin lifecycle에서 제외할수 있는 어노테이션을 제공한다.

    다음과 같이 특정 이메일이 존재할때만 빈을 등록할 코드를 작성합니다.

    @ConditionalOnProperty(name = "specific.email.value", matchIfMissing = false)
    @Component
    public class TokenSpecificEmailProvider {
    }

     

    아래는 속성에 대한 설명은 아래와 같습니다.

    name

    필수 속성으로, 확인할 프로퍼티의 이름을 지정합니다. 여러 개의 이름을 배열로 지정할 수도 있습니다.

    havingValue

    프로퍼티의 값과 일치해야 하는 값을 지정합니다. 기본값은 빈 문자열("")입니다. 이 속성은 선택적으로 사용할 수 있으며, 사용하지 않을 경우 프로퍼티의 값이 비어있지 않은 경우를 의미합니다.
                
    matchIfMissing

    기본값은 false이며, 프로퍼티가 존재하지 않을 때 빈이 생성되지 않도록 합니다.
    true로 설정하면 프로퍼티가 존재하지 않아도 빈이 생성됩니다.

    prefix

    프로퍼티의 접두사(prefix)를 지정합니다. 접두사를 사용하면 프로퍼티의 이름을 더 유연하게 조합하여 확인할 수 있습니다. 
    예를 들어, prefix = "myapp.feature"로 설정하고 name = "enabled"라고 지정하면 myapp.feature.enabled라는 프로퍼티가 존재하는지 확인합니다.
              
    value

    name과 동일한 역할을 합니다. value 속성을 사용할 경우 name 속성을 생략할 수 있습니다.

    Posted by 천상나타