수동 빈 등록 방법
설정 클래스에 다음과 같이 새 메소드를 만들어 빈으로 생성하길 원하는 클래스의 객체를 리턴하도록 만든다.
`@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.