티스토리 뷰
스프링 부트 애플리케이션이 처음 실행되고 난 시점에 특정한 코드나 동작을 수행해야 할 때 사용하는 객체들
ApplicationRunner, CommandLineRunner
ApplicationRunner
스프링 부트 실행시 특정 Bean을 애플리케이션 실행후 실행되는 인터페이스
run메서드 하나만 있는 펑셔널 인터페이스이며 인자값으로 ApplicationArguments를 받는다
ApplicationArguments란 프로그램 실행시 명시되는 argument를 추상화된 API를 통해서 접근할 수 있는 인터페이스
환경변수 속성 우선순위
- JVM에 설정한 options 값
- Enviroment variables 에 설정한 값
- application.properties에 설정한 값
CommandLineRunner
ApplicationRunner와 동일한 기능을 제공하는 인터페이스이나 인자값을 ApplicationArguments 대신 String 가변인자를 받는다.
실행 순서를 위해 @Order를 사용하기도한다.
https://mangkyu.tistory.com/233
https://www.daleseo.com/spring-boot-runners/
application.properties 파일을 이용한 contextPath 환경 설정 변경
Bean 클래스의 filed 값을 property에서 읽어온 값 주입하는 방법
@Value 애노테이션 속성값으로 placeholder 치환자 값을 사용하기 위해
PropertyPlaceholderConfig 클래스 생성 및 등록
https://mangkyu.tistory.com/167
https://catsbi.oopy.io/379afd0c-d956-4133-b585-20d13d823c1a
@Value 애노테이션의 역할과 기능
@Value 애노테이션의 기능과 역할 및 사용법
catsbi.oopy.io
property 값이 엄청 많아지면 field를 무한정 늘리기 부담, 재사용 하기 어려움
별도의 클래스로 추출
properties에 내용이 많아져도 ServerProperties에서 관리를 해주니 깔끔~
설정정보가 많아져서 Config 파일이 나뉘어져야 하거나 ServerPropertiesConfig 내부 컨디션 조건들을 더 간편하게 하기위해
BeanPostProcessor를 사용하여 객체 생성 초기화 후 프로퍼티 설정을 해야 하는 설정 객체가 만들어지면 properties 파일 이름과 매칭되는 설정 정보 바인딩
prefix 다는 작업
properties 파일에 패키지 파일명같이 어느쪽에 선언된 클래스 필드인지 접근 연산자로 찾아올 수 있게 만드는 작업
contextPath나 Port 등 다른 설정파일에도 자주 쓰여지는 네이밍 이라면 중복될 수 있으니 별도의 선언부를 만들어 주는 작업
토비의 스프링 부트 - 이해와 원리 - 인프런 | 강의
스프링 부트의 핵심 기능을 직접 만들어보면서 스프링 부트의 동작 원리를 이해하고, 이를 통해 스프링 부트를 잘 학습하고 사용하는 방법을 배우는 강의입니다. 스프링 부트가 사용하는 스프
www.inflearn.com
'자바 > 스프링 부트' 카테고리의 다른 글
섹션10. 스프링 부트 자세히 살펴보기 (0) | 2023.03.01 |
---|---|
섹션 9. Spring JDBC 자동 구성 개발 (0) | 2023.02.28 |
섹션7. 조건부 자동 구성 (0) | 2023.02.16 |
섹션6.자동 구성 기반 애플리케이션 (0) | 2023.02.12 |
섹션5. DI와 테스트, 디자인 패턴 (0) | 2023.02.09 |