@SpringBootConfiguration(Spring Boot) 🆚 @Configuration(Spring Framework)
- @SpringBootConfiguration =
@SpringBootApplication
- 테스트환경에서 자동으로 찾아짐 → 단 한개!!(최상위 congiguraion) → main 클래스 단 1개
- 자동으로 Component Scan 함 → 하위의 모든 패키지를 스캔
- 다른 추가 설정 없이 Yaml파일과 ConfigurationPropreties를 사용가능
- @Configuration : 용도별로 분리해서 사용
- Yaml 파일을 YamlPropertiesFactory를 사용해야함
@PropertySource
로 어떤 property를 읽을지 정해야함
- OrderProperties클래스에서
@ConfigurationProperties
를 사용할 때 @EnableConfigurationProperties
를 사용해야함
spring-boot-starter (Starter POMs) 장점
- SpringApplication을 통한 손쉬운 실행
- Auto Configuration
- 쉬운 외부 환경 설정 - Properties, YAML, Command line 설정 등
- 프로파일을 통한 실행환경 관리
- Packaging Executable Jar
- Developer Tools
SpringBoot Banner 제너레이터
- 배너를 바꾸는 방법 - 아래의 사이트를 통해 변경 가능
- resource폴더 → banner.txt만든 후 복붙
Text to ASCII Art Generator (TAAG) (patorjk.com)
Spring Boot Logging 기능
https://docs.spring.io/spring-boot/docs/2.5.1/reference/htmlsingle/#features.logging
스프링부트를 사용하면 기본적으로 Logback이 사용되고 SLF4J 이용 가능
logback.xml대신 configuration에서 사용가능
ex) logback.xml을 logback-backup.xml로 바꾸면 전에 log설정한거와 비슷한데 좀 다르게 나옴
Log Level 설정하기
https://docs.spring.io/spring-boot/docs/2.5.1/reference/htmlsingle/#howto.logging
Spring Boot에서 외부에서 설정가져오기
24. Externalized Configuration (spring.io)
- 홈 디렉터리(개발 도구가 활성화된 경우 ~/.spring-boot-devtools.properties )의 개발
도구 전역 설정 프로퍼티
- 테스트의 @TestPropertySource 어노테이션.
- 테스트의 properties 애트리뷰트. @SpringBootTest 와 애플리케이션의 특정 부분을 테
스트하기 위한 테스트 어노테이션에서 사용 가능.
- 커맨드 라인 인자.
- SPRING_APPLICATION_JSON 의 프로퍼티(환경 변수나 시스템 프로퍼티에 삽입된 인라인
JSON).
- ServletConfig 초기 파라미터.
- ServletContext 초기 파라미터.
- java:comp/env 의 JNDI 애트리뷰트.
- Java 시스템 프로퍼티( System.getProperties() ).
- OS 환경 변수
- random.* 에 프로퍼티를 가진 RandomValuePropertySource .
- 패키지된 jar 외부의 프로파일 지정 애플리케이션 프로퍼티( application-
{profile}.properties 와 YAML 형식).
- 패키지된 jar 내부의 프로파일 지정 애플리케이션 프로퍼티( application-
{profile}.properties 와 YAML 형식).
- 패키지된 jar 외부의 애플리케이션 프로퍼티( application-{profile}.properties 와
YAML 형식).
- 패키지된 jar 내부의 애플리케이션 프로퍼티( application-{profile}.properties 와
YAML 형식).
- @Configuration 클래스의 @PropertySource 어노테이션
- ( SpringApplication.setDefaultProperties 에 의해 명시된) 기본 프로퍼티.
실행 가능한 jar파일 생성하기
Spring Boot의 Maven 플러그인을 이용해서 jar / war 패키지를 생성
- intelij 터미널에서 mvn clean package spring-boot:repackage 실행
- target폴더에 가서 보면 jar로 잘 패키징된 것을 볼 수 있다
- java -jar target/demo-0.0.1-SNAPSHOT.jar 을 실행하면 전에 내가 실행했던것을 다시 볼 수 있음