메인 클래스에 붙어있는 @SpringBootApplication 어노테이션은 크게 3개로 변경가능합니다.
@Configuration
@ComponentScan
@EnableAutoConfiguration
하나씩 알아봅시다.
package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// @SpringBootApplication
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Configuration은 빈을 등록하는 설정파일 입니다.
ComponentScan은 현재 클래스가 있는 패키지에서 시작(자기 자신도 포함)해서 하위 패키지를 모두 탐색해서 빈으로 등록합니다.
등록하는 컴포넌트들은 다음 어노테이션이 붙어있습니다.
@Component
@Congiguration
@Repository
@Service
@Controller
@RestController
메타 파일을 등록하며, @ComponentScan로 등록하지 못한 추가 적인 빈을 등록합니다.