Language/Java
@Component, @Bean, @Autowired가 뭘까?
hu6r1s
2024. 3. 5. 21:34
일단 결과적으로 이 세 어노테이션들은 모두 빈을 등록하는 어노테이션이다.
근데 왜 구분하여 사용하는 걸까?
용도가 다르니 구분했겠지.
@Component
@Component는 개발자가 직접 작성한 클래스 파일에 대해 Bean을 등록하기 위한 어노테이션이다.
예를 들면 Controller, Service 어노테이션을 보면 @Component가 붙어있는 것을 볼 수 있다.
@Bean
@Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean 등록하기 위한 어노테이션이다.
@Autowired
@Autowired는 @Component를 통해 등록된 Bean을 다른 곳에서 의존성 주입(DI)을 위해 사용하는 어노테이션이다.
@Autowired를 통해 의존성을 주입하는 방법은 세 가지가 있다.
생성자, Setter, 필드