일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코딩테스트
- 자바스크립트
- 스프링 클라우드
- map()
- Spring Cloud
- 스프링
- 프로그래머스
- leetcode
- date
- docker
- OAuth
- 유레카
- map
- IntelliJ
- SpringBoot
- STS
- gitlab
- GIT
- spring security
- JS
- jQuery
- 비동기
- EUREKA
- spring boot
- 스프링부트
- 자바
- 도커
- JavaScript
- Java
- Spring
- Today
- Total
RATSENO
[SpringBoot]자동 설정 이해 본문
SpringBoot로 프로젝트를 생성하게 되면, 기존의 SpringFramework로 생성하였던 프로젝트에서 진행하였던
기타 설정들을 자동으로 잡아줍니다. 어떻게 이러한 설정들이 자동으로 이루어지는지 알아보겠습니다.
package com.example.ratseno.springbootgettingstrated;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootGettingStratedApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootGettingStratedApplication.class, args);
}
}
SpringBoot로 프로젝트를 생성하게되면 main 클래스가 자동으로 생성됩니다. 위의 소스에서
@SpringBootApplicatino 어노테이션은 아주 중요한 역할을 합니다. 해당 어노테이션을 클릭하게되면
자동 설정에 관련된 여러가지 어노테이션들이 적용되어있습니다.
@SpringBootApplication은 세가지의 어노테이션으로 대체될 수 있습니다.
- @SpringBootConfiguration
- @ComponentScan
- @EnableAutoConfiguration
Bean은 두 단계에 걸쳐서 등록됩니다.
1. @ComponenScan 에서 먼저 등록되고
2. @EnableAutoConfiguration 에서 나머지가 등록이됩니다.
@ComponentScan 은 @Component라는 어노테이션을 가지는 클래스를 빈으로 등록합니다.
- @Configuration @Repository @Service @Controller @RestController 도 같이 등록
- 주의사항 : @ComponentScan이 있는 패키지 하위에 있는 것들만 빈으로 등록
@EnableAutoConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration
spring-boot-autoconfigure 프로젝트에 있는 META폴더의 spring.factories파일을 열어보게되면
여러개의 키값에 그에 대한 value값들이 쭈우우욱 정의되어있습니다. 이 value 값들은 설정에 관련된 class들 입니다.
백기선님 스프링부트 개념과 활용 참고(인프런)
'DEV > SPRING' 카테고리의 다른 글
[SpringBoot]Spring Boot Security + OAuth 2.0 [Authorization code grant] (1) (0) | 2020.09.14 |
---|---|
[SpringBoot]SpringBoot 2.2.x 버전 Junit5에서 Junit4로 변경 (3) | 2020.02.26 |
[SpringBoot]SpringBoot 프로젝트 생성 (0) | 2020.02.19 |
[Spring]Springboot + websocket 채팅[2] (9) | 2020.02.18 |
[Spring]Springboot + websocket 채팅[1] (6) | 2020.02.18 |