설정과 원리
Spring은 component-scan을 통해 component들을 찾아 bean 생성을 진행하며 설정한 bean들이 생성된다. 이와 마찬가지로 spring에 기반을둔 spring boot 역시 이와같은 방법을 통해 bean을 생성한다.
spring boot는 이와같은 빈 생성을 어노테이션을 통해 xml 파일 없이 보다 쉽게 설정이 가능하다.
spring boot는 @Controller, @RestController, @Service, @Repository, @Bean과 같은 어노테이션은 물론 @EnableAutoConfiguration어노테이션을 이용한 auto configuration 기능에 의해 추가적인 bean들도 함께 생성된다.
1. @EnableAutoConfiguration
@EnableAutoConfiguration은 auto configuration 기능을 사용하겠다는 어노테이션이다. 해당 어노테이션을 사용하지 않으면 auto configuration 기능을 사용하지 못하게 된다.
일반적으로 @ComponentScan과 함께 사용되고 @ComponentScan("com.test.sample")과 같이 스캔할 패키지 위치를 입력하여 component scan의 범위를 지정할수있다. 즉 @ComponentScan("com.test.sample") 은 com.test.sample 하위의 모든 패키지를 component scan의 범위로 잡겠다고 설정한것이다.
만약 @ComponentScan()와 같은 스캔범위를 잡지 않는다면 Application 클래스가 놓여진 패키지가 기본적으로 스캔의 범위로 잡히게 된다.
▶ 이와 같은 방법으로 component scan을 통하여 스캔한 component들의 정보와 Spring Boot가 spring.factories 파일에 사전에 정의한 AutoConfiguration 설정 내용에 의해 bean이 생성된다.
'Web > Spring' 카테고리의 다른 글
[Spring] Filter와 Interceptor (0) | 2020.05.13 |
---|---|
[Spring Boot] HttpMessageConverters (0) | 2020.05.13 |
[spring boot] ExceptionHandler (0) | 2020.05.13 |
[Spring] Device 체크 (0) | 2020.05.13 |
[Hibernate + Spring Data JPA + Querydsl] Querydsl (0) | 2020.04.28 |