환경 :
openJdk 8
tomcat 8.5.93
jar = 8083
war = 8084
왜 외부에서 application을 주입하려는걸까?
프로젝트 배포 후 설정에 변경사항이 생기면 설정이 파일 안에 존재하다보니 명령어를 통해 교체하거나 새로 빌드하여 재배포를 해야되는 번거로움이 있다. 이런 경우를 보완하고자 애초에 설정파일 자체를 밖으로 빼내어 재배포를 하지 않고도 설정을 바꾸고 프로젝트만 구동시키면 된다.
Property 우선순위
Property를 바인딩하는 다양한 방법이 존재하듯이 바인딩할 Property파일을 찾는 방법 또한 순서가 존재합니다.
Spring Boot 동작 시 Property를 찾는 순서입니다. (몇 가지는 제외하였습니다.)
1. Terminal에서 명령어 입력 | --spring.properties.active=real 등 |
2. Java 시스템 속성 | System.getProperties() |
3. jar 파일과 같은 경로에 존재하는 properties 파일 | .properties, .yml profile 모두 적용 가능 |
4. jar 파일과 함께 패키징된 properties 파일 | src/main/resources 경로에 위치한 application.properties |
1. jar
1. 상황 설명
--jar파일 안에 application.yml 내용 : inSide Value
--jar파일 밖에 application.yml 내용 : outSide Value
2. 아무런 설정없이 서버 기동
[root@localhost home]# java -jar demo-0.0.1-SNAPSHOT.jar
3. 외부 application.yml을 업로드 한 뒤 서버 기동
2. war
1. 상황 설명
--war 내부 application.yml 내용 : war inSide Value
--war 외부 application.yml 내용 : war outSide After Value
2. war 파일 업로드
3. 내부 war application.yml 확인
4. 외부에 application.yml 업로드
5. 외부 application.yml 먼저 바라볼 수 있도록 설정
vi /home/apache-tomcat-8.5.93/bin/catalina.sh
-- 최상단에 외부 application.yml 경로 설정
export JAVA_OPTS="$JAVA_OPTS -Dspring.config.location=file:/home/application.yml"
5. 톰캣 재기동
[Property 우선순위 참고]
'OS' 카테고리의 다른 글
[CentOS] Jenkins 설치하기 ! (1) | 2023.10.06 |
---|---|
[OCI] Oracle Cloud 고정 IP 설정 (0) | 2023.09.21 |
[OCI] Oracle Cloud에 인스턴스 생성 (0) | 2023.09.20 |
[PuTTYgen] pub(공용키), ppk(전용키) 생성하기 (0) | 2023.09.20 |
[CentOS] TOMCAT 설치하기 ! (0) | 2023.09.20 |