티스토리 뷰

SpringBoot

@Component와 @Bean의 차이

Jaime.Lee 2019. 9. 26. 13:57

@Component (@Controller, @Service, @Repository 등)는 클래스위에 표시하여 해당 클래스가 '컴포넌트'임을 나타내고, 애너테이션 설정과 클래스패스 스캐닝시에 자동으로 감지 대상으로 간주합니다.

Indicates that an annotated class is a "component". Such classes are considered as candidates for auto-detection when using annotation-based configuration and classpath scanning.
... 생략 (출처: javadoc)

@Bean은 메소드위에 표시하고 해당 메소드가 스프링 컨테이너에 의해 관리되는 빈을 생성한다는 것을 나타냅니다.

어노테이션 설정과 클래스패스 스캐닝시에 자동으로 감지 대상으로 간주한다고 합니다.
... 생략 (출처: javadoc)

간단하게만 봐도 둘의 차이점을 알 수 있습니다. 하지만 컴포넌트나 빈을 호출할 때 사용하는 방법은 서로 동일합니다. 외부 클래스에서 @Autowired 애너테이션을 이용하거나 생성자, setter를 통해 의존성을 주입받아 사용할 수 있습니다.

댓글