application.yml
。Application의log level,profile,actuator등 의 많은 세부설정을 정의하는configuration file
。외부에서어노테이션등으로 인해 값의 참조가 가능하므로 민감한 정보는application.yml에 작성하지 않는다.
▶property placeholder를 통해${환경변수명}으로 설정하여환경변수로 입력되도록 설정
Spring이configuration file을 읽는 순서
bootstrap.yml -> application.yml -> application-프로필.yml
。bootstrap.yml은MSA에서config server연동 시 사용
。Spring Boot는 활성화된Profile(application-{profile}.yml)을 다음 위치에서 찾음
▶src/main/resources,src/test/resources
property placeholder:${상위경로.프로퍼티명}
。Spring에 설정된 실제property의 값을 가져와서 치환하는 기능을 수행kt: cloud: 11 name: ${kt.cloud:12} # 11로 설정 및 kt.cloud가 없으면 12
${프로퍼티명}:프로퍼티가 없는경우 에러${프로퍼티명:대체값}:프로퍼티가 없는경우대체값으로 설정
Edit Configuration - Environment Variable에서 해당프로퍼티에 대한 값을 설정 할 수 있다.
ex )${PASSWORD}인 경우PASSWORD:1234설정
환경변수 값 설정
classpath:/자원명
。해당 이름의자원을프로젝트의Class경로상에서 찾도록 하는키워드thymeleaf: prefix: classpath:/templates-${active.profiles}/。
active.profiles=dev로 설정된 경우
▶prefix는프로젝트 내 실제경로/template-dev/로 설정
서버 포트 번호설정
。server:port:0으로 설정 시Spring이 임의로포트번호를 할당
▶포트번호의 중복을 방지가능.server: port: 0
spring:config:import
。추가적인환경이 정의된yml 파일을어플리케이션의런타임에서 읽어와서 현재환경에병합하는 역할을 수행
。지정한 순서대로 로딩 및 뒷순서에 있는파일이 우선순위가 더 높으므로 동일프로퍼티에 대해덮어쓰기가 수행spring: config: import: - classpath:common.yml - optional:classpath:special.yml - file:/etc/app/external.yml