본문 바로가기
Spring

application.properties VS application.yml

by 밝지 2023. 4. 24.
728x90
반응형

외부에서 특정 값을 주입 받아야 하는 경우(예: 외부 API key 등) 외부 설정 파일 - application.properties OR application.yml 에 설정하여 주입한다. resource 하위에 위치한 이런 설정 파일은 스프링 부트가 자동으로 로딩한다. application.yml 과 application.properties를 동시에 사용하면, .properties가 .yml을 덮어씌울 수 있으므로 한 가지만 사용해야 한다. (.properties가 더 나중에 로드됨.)

 

application.properties application.yml
각 라인은 단 하나의 key-value


${ }를 사용해 다른 환경변수 값 참조 가능
app.description = ${app.name}

List 구조를 나타낼 수 있다.

스프링 2.4 이상부터는 한 파일에 다중 Profile 설정이 가능하다.
'#---'로 구분하며
spring.config.activate.on-profile로 profile을 구별할 수 있는 이름을 준다. (예: spring.config.activate.on-profile=prod)

여러 파일로 나누어 Profil을 관리하는 경우(예: application-local.properties, application-dev.properties...) jar 빌드 시에 명령어로 환경에 맞는 profile을 쓸 수 있다.
예)
nohup java -jar -Dspring.profiles.active=prod ${JAR_LOCATION} 1> log-prod.md 2>&1 &
YAML은 계층적으로 구성 데이터를 지정하기에 편리하다.
(중복되는 접두사가 제거되고, 계층구조라서 보기에 좋음)
예)
datasource:
   mysql:
       driver-class-name: com.mysql.jdbc.Driver
       scheme: jdbc:mysql
       user: user
       password: passoword

List 구조를 나타낼 수 있다. (보기 좋게)
예)
application:
   servers:
       - ip: '127.0.0.1'
          path: '/path1'
       - ip: '127.0.0.2'
          path: '/path2'

스프링 버전과 상관없이 하나의 파일에 여러 Profile을 설정할 수 있다. Profile은 '---'로 구별한다. 



 

(참고: https://newwisdom.tistory.com/89)

 

+)

nohup 명령어 ?

nohup은 no hang up의 약자이다. 데몬 형태로 실행되어서 세션 연결이 종료되어도 종료되지 않고 계속 실행되어야 하는 프로세스를 실행할 때 nohup 명령어를 사용한다. = 중단 없이 실행되어야 하는 프로그램 명령어 앞에 nohup을 붙여준다. 

 

++) 

nohup 실행과 백그라운드 실행(명령어 맨 끝에 & 붙이기)의 차이 ?

백그라운드 실행은 그야말로 백그라운드에서 실행하는 것. 옵션으로 세션이 종료된 이후에도 실행되는것이지(디폴트임...) 원래는 세션에 종료되면 프로세스는 종료된다. 

 

어떤 프로그램을 종료 없이 백그라운드에서 실행되게 하고 싶다면? 

nohup ~~~~~~~

 

728x90
반응형

'Spring' 카테고리의 다른 글

웹 서버 - 외장서버 vs 내장서버  (0) 2023.05.21
XSS Filter 적용하기 (lucy-xss-servlet-filter)  (0) 2023.04.25
스프링 AOP  (0) 2023.03.05
스프링, 스프링 부트의 등장  (0) 2023.03.05
스프링 부트의 핵심 기능  (0) 2023.03.04