jaycee.log
로그인
jaycee.log
로그인
@Bean VS @Component
jaycee
·
2023년 1월 25일
팔로우
0
Spring
디자인패턴
0
Bean과 Component의 차이점, 다른게 쓰이는 이유
@Bean
@Component
어노테이션 위치
메소드
클래스
저장되는 객체
어노테이션으로 지정된 메소드의 리턴 값
클래스를 @Bean으로 등록됨
사용처
개발자가 제어가 불가능한 외부 라이브러리를 실행한 결과
개발자가 직접 개발한 클래스
주의 사항
@Configuration 어노테이션이 있는 클래스 내부의 메소드에 선언되어야 함
Bean은 스프링 컨테이너에서 관리되는 객체이다.
Bean으로 관리되지 않은 객체는 스프링 컨테이너에서 의존성 주입을 받을 수 없다.
왜 @Bean 어노테이션을 개발자가 제어가 불가능한 외부라이브러리에 사용하는가?
-> 외부 라이브러리 소스를 수정할 수 없어서 @Bean 어노테이션으로 등록할 수 없기 때문이다.
-> 그래서 외부 라이브러리 메소드의 실행결과를 @Bean으로 지정하여 사용한다.
왜 @Configuration을 클래스 상단에 붙여야 하는지?
-> 싱글톤 객체로 관리하기 위해서는 @Configuration을 붙여줘야함
물론 @Bean, @Component 어노테이션 모두 잘못된 위치에 입력하면 컴파일 에러가 발생한다.
jaycee
오늘도 하나 배웠다.
팔로우
이전 포스트
객체지향의 핵심 원리 - SOLID
다음 포스트
전략 패턴 Strategy Pattern
0개의 댓글
댓글 작성