springboot를 사용하고 jar파일로 배포를 진행하는 프로젝트에서
디비의 접속 URL을 변경해야 하는 이슈가 생겼다.
현재 배포된 jar파일은 수정하지 않고, 수정한 properties만 적용하는 방법이 없을까 하여 검색하여
아래 문서에서 해당 내용을 찾게 됨
https://www.baeldung.com/spring-properties-file-outside-jar
https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config.files
- /data/projects/karint/karint-app.jar
jar파일 위치를 기준으로 한다.
기본적으로 properties를 읽을 수 있는 경로
* /data/project/karint/config
* /data/project/karint/
* classpath:/config
* classpath:/
추가적으로 --spring.config.additional-location 옵션을 추가하여 설정 디렉토리를 추가 할 수 있다.
java -jar /data/projects/karint/karint-app.jar --spring.config.additional-location=file:///data/projects/karint/extra-conf/
- /data/projects/karint/extra-conf 경로에 properties파일을 위치시키면 기존 설정을 덮어 쓸 수 있다.
파일이 아니라 일부 프로퍼티만 수정을 하기 위해서는 아래 옵션을 사용해서 변경할 수 있다.
- Dspring.application.json={\"spring.datasource.url\":\"jdbc:mysql://192.168.0.1/dbname\"}
spring.datasource.url 의 속성을 위의 정의한 것처럼 변경할 수 있다. json형태이기 때문에
얼마든지 여러개의 속성을 덮어쓸 수 있다.
'java' 카테고리의 다른 글
intellij console log 에서 jsp 컴파일 에러 확인 (0) | 2024.07.22 |
---|---|
tomcat9 jmx jconsole 연결 옵션 (0) | 2024.05.08 |
jpa에서 mysql8 예약어로 된 컬럼 사용시 옵션 설정 (0) | 2024.02.05 |
gradlew 프록시 서버 설정 (0) | 2024.02.01 |
springboot Invalid 'expires' attribute (0) | 2023.10.10 |