@Configuration 클래스는 스프링 애플리케이션 컨텍스트에 빈으로 등록될 수 있으며, @Bean 어노테이션이 적용된 메서드를 통해 빈을 생성할 수 있습니다.
@Bean 메서드에서 의존주입을 할 수 있는 방법에는 다음과 같은 형태가 있습니다.
@Autowired 어노테이션을 생성자 파라미터에 적용하여 의존하는 빈을 주입받는 방식입니다.
@Bean
public SampleBean sampleBean(DependencyBean dependencyBean) {
return new SampleBean(dependencyBean);
}
@Autowired 어노테이션을 적용한 setter 메서드를 통해 의존하는 빈을 주입받는 방식입니다.
@Bean
public SampleBean sampleBean() {
return new SampleBean();
}
@Autowired
public void setDependencyBean(DependencyBean dependencyBean) {
sampleBean().setDependencyBean(dependencyBean);
}
@Autowired 어노테이션을 필드에 직접 적용하여 의존하는 빈을 주입받는 방식입니다.
🚨 이 방식은 일반적으로 권장되지 않으며, 테스트 등 특정 상황에서만 사용됩니다.
@Bean
public SampleBean sampleBean() {
SampleBean sampleBean = new SampleBean();
sampleBean.setDependencyBean(dependencyBean);
return sampleBean;
}
@Autowired
private DependencyBean dependencyBean;