수동 빈 등록 방법
설정 클래스에 다음과 같이 새 메소드를 만들어 빈으로 생성하길 원하는 클래스의 객체를 리턴하도록 만든다.
`@Configuration public class AppCtx { @Bean public ChessBoardPrinter chessBoardPrinter() { return new ChessBoardPrinter(); } @Bean @Qualifier("status") public StatusPrinter statusPrinter() { return new StatusPrinter(); } }`
기본적으로 빈의 이름은 클래스명의 첫 글자를 소문자로 바꾼 이름이 된다. 다른 이름을 원한다면 @Qualifier
어노테이션으로 직접 지정할 수 있다.
컴포넌트 스캔
스프링 프레임워크가 자동으로 클래스를 검색해 별다른 설정 코드를 짤 필요 없이 빈으로 등록시키는 기능이다.
빈으로 등록시키고 싶은 클래스에 자동 스캔되는 어노테이션을 달고 설정 클래스에 @ComponentScan
어노테이션을 달아 주면 끝이다.
자동 스캔되는 어노테이션의 종류는 @Component
, @Controller
, @Service
, @Repository
, @Aspect
, @Configuration
이 있다.
`@Configuration @ComponentScan(basePackages = {"spring"}) public class AppCtx { ... }`
스프링 부트의 경우
@SpringBootApplication
안에 @ComponentScan
이 포함되어 있기에 별다른 설정 없이 애플리케이션이 존재하는 패키지와 그 아래 모든 패키지들이 스캔된다.
Comments powered by Disqus.