Spring Boot에서 애플리케이션이 실행될 때, ApplicationContext가 초기화되면서 필요한 Bean들이 컨테이너에 등록된다. Bean을 등록하는 방법들은 아래와 같다.
@Component
public class MyComponent {
public void do() {
System.out.println("Component 실행");
}
}
@Configuration
public class AppConfig {
@Bean
public MyClass myClass() {
return new MyClass();
}
}
@Configuration
@Import(AppConfig.class)
public class MainConfig {
}
@Configuration
public class ConditionalConfig {
@Bean
@ConditionalOnProperty(name = "feature.enabled", havingValue = "true")
public MyComponent myComponent() {
return new MyComponent();
}
}
feature.enabled라는 조건을 만족해야 할 프로퍼티의 이름으로 application.yaml이나 application.properties에서 등록할 수 있다.
havingValue : 프로퍼티의 값이 이 값과 일치해야 조건이 만족된다.
장점
단점
이 밖에도 여러 가지 방법이 존재한다.
<참고자료>
https://docs.spring.io/spring-cloud-function/docs/current/reference/html/functional.html