2.2.3 프로그래밍 방식으로 스프링 컨텍스트에 빈 추가
여기에서는 프로그래밍 방식으로 스프링 컨텍스트에 빈을 추가하는 방법을 설명한다. 스프링 5에서는 스프링 컨텍스트에 프로그래밍 방식으로 빈을 추가하는 방법이 소개되었는데, 이는 컨텍스트 인스턴스의 메서드를 호출하여 컨텍스트에 새 인스턴스를 직접 추가할 수 있어 유연성이 매우 뛰어나다. 컨텍스트에 빈을 추가하는 사용자 재정의 방법을 구현하고 싶지만 @Bean 또는 스테레오타입 애너테이션 방식이 요구에 충족되지 않을 때는 이 방식을 사용한다. 애플리케이션의 특정 구성 정보에 따라 스프링 컨텍스트에 특정 빈을 등록해야 한다고 가정해 보자. @Bean 및 스테레오타입 애너테이션을 사용하면 시나리오 대부분을 구현할 수 있지만 다음 코드에서 제시된 작업은 수행할 수 없다.
if (condition) {
registerBean(b1); ← 조건이 참이면 스프링 컨텍스트에 특정 빈을 추가한다.
} else {
registerBean(b2); ← 참이 아니면 스프링 컨텍스트에 다른 빈을 추가한다.
}