일단 결과적으로 이 세 어노테이션들은 모두 빈을 등록하는 어노테이션이다.
근데 왜 구분하여 사용하는 걸까?
용도가 다르니 구분했겠지.
@Component
@Component는 개발자가 직접 작성한 클래스 파일에 대해 Bean을 등록하기 위한 어노테이션이다.
예를 들면 Controller, Service 어노테이션을 보면 @Component가 붙어있는 것을 볼 수 있다.
@Bean
@Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean 등록하기 위한 어노테이션이다.
@Autowired
@Autowired는 @Component를 통해 등록된 Bean을 다른 곳에서 의존성 주입(DI)을 위해 사용하는 어노테이션이다.
@Autowired를 통해 의존성을 주입하는 방법은 세 가지가 있다.
생성자, Setter, 필드
'Language > Java' 카테고리의 다른 글
JPA에 대해 깊이 알아보자 (0) | 2024.03.07 |
---|---|
Service 인터페이스와 구현체 분리 (0) | 2024.03.06 |
@NoArgsConstructor (access = AccessLevel.PROTECTED) 사용 이유 (0) | 2024.03.04 |
자바의 객체지향 정리 (0) | 2023.12.22 |
JVM (0) | 2023.12.21 |