Property

Basic

프로퍼티는 몇가지 방법으로 설정할 수 있다. 아래의 목록은 우선순위가 높은것부터 (명령줄 인자의 우선순위가 가장 높음) 나열한 것이다.

  • 명령줄 인자
  • OS의 환경변수
  • application.property 또는 application.yml 파일 (물론 프로파일 전용 파일도 포함)

환경변수

환경변수 설정 (bash 기준. 다른 쉘은 환경변수 설정 파일이 다를 수 있음.)
  • 우선 /etc/profile.d 디렉처리 안에 환경변수 설정용 .sh 파일을 만든다.(시스템 부팅시 실행됨)
sudo vi /etc/profile.d/springboot.sh
  • 그 후, 아래와 같이 환경변수를 설정하는 linux 명령어를 입력하고 저장한다.

환경변수 설정 후, os 를 재시작한다.

Tip. 환경변수 세팅 확인

다음과 같이 환경변수를 쉘에 출력해 제대로 세팅되고 그것이 현재 쉘에 적용된 상태인지 확인할 수 있다.

echo $spring_profiles_active

Profile

Property File

yml 파일 기준으로, 하이폰 3개로 파일을 나눈 효과를 낼 수도 있고, 아니면 아래와 같이 파일 이름에 프로파일을 명시할 수도 있다.

  • application.yml
#각 개발환경마다 다를 가능성이 크거나, 개인정보를 포함하는 것들, 또는 프로파일은 환경변수로 설정한다.
# export spring_profiles_active=development
# export server_port=38050
# 그렇지 않다면, 프로파일을 이용한다.
spring:
  thymeleaf:
    mode: LEGACYHTML5
logging:
  file: /var/log/BookWarm.log # 이 Spring Boot 애플리케이션이 해당 디렉토리의 해당 파일에 쓰기 권한이 필요하다. (sudo로 실행하자?)

---
spring:
  profiles: development
#   active: development
  thymeleaf:
    cache: false
  groovy:
    template:
      cache: false
  devtools:
    livereload:
      enabled: true
server:
  port: 32222
logging:
  level:
    root: DEBUG # 개발시에는 DEBUG 이상의 로그를 남긴다.

---
spring:
  profiles: production
#    active: production
server:
  port: 80
logging:
  level:
    root: WARN # WARN 이상의 로그를 남기되,
    org.springframework.security: DEBUG # spring security 에 관해선, DEBUG 이상의 로그를 남긴다.
  • 프로파일 전용 파일 : application-development.yml, application-production.yml

위에서는 application.yml 파일에 여러 프로파일을 구분해서 모두 선언했지만, 파일 이름에 프로파일을 명시하여 파일로 나누는 방법도 있다.

주의사항

.properties 파일을 쓸 때나 환경변수 선언 등 모든 경우에 기본적으로 활성화 된 프로파일을 지정하는 변수는 spring.profiles.active (환경 변수인 경우 당연히 spring.profiles_active) 이어야 한다, 그러나, .yml 파일 내부서 프로파일을 직접 지정시

spring:
  profiles: production

과 같이 spring > profiles 다음에 바로 프로파일 이름의 값을 지정한다.

results matching ""

    No results matching ""