🌹 정리 by 장미(https://velog.io/@newbiekim/)
스프링이 개발자 대신 객체를 제어하기 위해서는 객체들이 *Bean으로 등록되어 있어야 한다.
*Bean: Spring IoC 컨테이너가 관리하는 자바 객체.
Configuration 관련 객체들은 @Bean과 @Component로 스프링 컨테이너에 객체를 빈으로 등록할 수 있다.
@Bean
메서드 레벨에서 선언하며, 반환되는 객체(인스턴스)를 개발자가 수동으로 빈으로 등록하는 어노테이션이다.
@Bean
public BeanExample beanExample() {
return new BeanExample();
}
해당 클래스의 객체를 반환하는 메서드를 만들고, 메서드에 @Bean
을 선언하여 등록하면 된다.
@Component
컴포넌트는 클래스 레벨에서 선언하며, 스프링이 런타임 시에 컴포넌트 스캔을 하여 자동으로 빈을 찾고 등록하는 어노테이션이다.
@Component
public class ComponentExample {
}
*ComponentScan을 사용하면 클래스를 보다 쉽게 빈으로 등록할 수 있다.
→ 알아서 @Component 클래스를 찾아 자동으로 빈으로 등록한다.