본문 바로가기

Spring

스프링 부트 - 자동 구성 @Conditional

스프링 JDBC 혹은 Data JPA를 사용해본 사람이라면 알 것이다. 이를 사용하기 위해서는 DataSource 혹은 JpaReository 를 빈으로 등록해야 한다. 하지만 우리는 따로 이들을 직접 @Bean을 붙이거나 @Component를 붙여 스프링 컨테이너에 넣는 작업을 하지 않았다. 어떻게 가능할까? 바로 스프링 부트의 자동 구성이라는 기능 덕분이다.

 

목차

1. @Conditional


1. @Conditional

 

소스 코드의 변경 없이 자동 구성을 하기 위해서는 우선 Condition 인터페이스를 구현해야 합니다.

내부에서 환경 변수를 꺼내와야 해요. "memory" 키 값이 "on" 일때만 MemmoryCondition이 활성화 됩니다.

"memory"라는 환경 변수(시스템 속성)는 직접 설정해야 합나다. 아래 과정을 따라하시면 됩니다.

 

자바  시스템 속성 설정

1. Edit Configuration 클릭

2. Modify options 클릭

3. add VM options (JVM 시스템 옵션을 추가)

4. - Dmemory=on(prefix 로 -D가 붙는다.)

 

 

이제 특정 환경(시스템 속성 "memory" = "on")에서만 무언가가 작동하도록 만들어보겠습니다.

 

시스템 속성 "memory" = "on" 일때만 아래의 코드가 동작합니다. 즉 아래 MemoryController, MemoryFinder 두 객체가 스프링 빈으로 등록됩니다.