1. Maven 세팅
2. Linux Maven 실행
2-1) mvn package
2-2) java -jar target/spring-boot-getting-st-1.0-SNAPSHOT.jar
3. Spring Boot 자동 설정 개요
3-1) SpringBootApplication
SpringBootApplication은 세 개의 어노테이션을 하나로 합쳐 놓은 형태임.
@SpringBootConfiguration
@ComponentScan
@EnableAutoConfiguration
3-2) SpringBookApplicaiton Bean 등록
1단계 : ConmponentScan으로 등록
2단계 : EnableAutoConfiguration으로 추가적으로 읽어온 Bean들을 읽어서 등록함.
3-3) ComponentScan
3-3)-1. ComponentScan의 역할
@ComponentScan은 자기 자신부터 시작해서, 하위 패키지를 싹 훑어서
@Component라는 어노테이션을 붙인 클래스들을 찾아서 Bean으로 등록한다.
3-3)-2. 하위 패키지들
@Configuration @Repository @Service @Controller @RestController
3-4) EnableAutoConfiguration
3-4)-1. EnableAutoConfiguration의 역할
Configuration는 Bean을 읽어들이기 위한 조건 등이 정의된 설정 파일이다.
4. 자동 설정 만들기 -1 Starter와 AutoConfigure
4-1) springbootgettingst(자동설정 기능 구현 디렉토리)
4-1)-1. Maven 설정
4-1)-2. @Configuration 파일 작성
4-1)-3. 자동설정 파일 추가하기
spring.factories
설정파일 정의하기
→ 설정파일을 'me.whiteship.HolomanConfiguration' 명시적으로 정의해주면
→ Spring EnableAutoConfiguration이 켜져 있으면 'me.whiteship.HolomanConfiguration'을
→ 읽게 됨. @Bean 설정을 보고 메소드를 사용함.
⇒ SpringBookApplicaiton Bean 등록 방법은 1단계 : ConmponentScan으로 등록
⇒ 2단계 : EnableAutoConfiguration으로 추가적으로 읽어온 Bean들을 읽어서 등록함.
mvn install
class HolomanConfiguration을 먼저 빌드하기
mvn install 하기
4-2) springbootgettingstarted(자동설정 기능 주입 디렉토리)
4-2)-1. maven 의존성 추가하기
4-2)-2. Application
SpringBoot Web Server 형태
→ SpringBoot는 웹 서버가 아니라 툴일 뿐.
⇒ 내장 Servlet Container를 쉽게 사용할 수 있게 해주는 툴
⇒ 스프링 프레임워크를 쉽게 사용할 수 있게 해주는 툴
→ 웹 서버는 톰캣, 네티, 제티, 언더토우 같은 게 서버임.
SpringBoot Web Server가 아닌 형태
WebApplicationType.NONE로 형태로 바꾸기
→ 실행하면 애플리케이션이 바로 종료 됨.
4-2)-3. HolomanRunner
→ ApplicationRunner를 만드는 이유는 args 인자를 받아서
→ Spring Application이 만들어지고 띄웠을 때 자동으로 실행되는 빈을 만들고 싶을 때
→ Holoman이라는 빈이 있다는 게 증명 됨.
4-2)-4. Application에서 @Bean을 등록한다면
5. 자동 설정 만들기-2 @ConfigurationProperties