You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
빈을 등록 시 일반적으로 사용되는 2가지 방법으로 @Component와 @Configuration이 있다.
우리가 일반적으로 컴포넌트 스캔이라고 하는 방식을 사용하여 스프링 빈을 등록하는 방법이 @Component이다. 이는 빈 스캐너에 의해서 자동으로 스캔하고 등록된다. @Component 애노테이션이 달린 클래스를 자동으로 찾아서 빈을 등록해주게 하려면 빈 스캔 기능을 사용하겠다는 애노테이션 정의가 필요하다. 빈 자동 등록이 컨테이너가 디폴트로 제공하는 기능이 아니기 때문이다. 그래서 @ComponentScan이라는 애노테이션으로 특정 패키지 아래서만 찾도록 기준이 되는 패키지를 지정하여 스캔할 컴포넌트들을 지정해줄 수 있다.
이와 같은 자동 등록 방식은 개발자가 제어할 수 있는 클래스에만 사용할 수 있다. @Configuration은 이와 달리 수동으로 @Bean 애노테이션을 달아주고 의존성을 주입한 빈을 생성하여 메서드 내부에서 인스턴스를 리턴하는 방식이다. 이때 빈의 이름은 인스턴스를 반환한 메서드의 이름이다. @Configuration이 달린 클래스는 Spring IoC 컨테이너에 의해 관리되는 설정 클래스가 되어 @Bean 애노테이션이 붙은 메서드와 함께 스프링 컨테이너의 빈으로 등록된다.
이런 수동 방식은 외부 라이브러리나 개발자가 제어할 수 없는 클래스를 빈으로 등록하고자 할 때 사용한다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
힌트) 컴포넌트 스캔,
@Configuration을 통한 Bean 등록
Beta Was this translation helpful? Give feedback.
All reactions