개발을 하다보면 로컬 서버와 개발서버, 운영서버가 각각 다 설정이 다른경우가 대다수이다.
로컬서버에서는 DB를 192.168.0.100, 포트를 3306
개발서버에서는 DB를 192.168.50.55, 포트를 13306
운영서버에서는 DB를 192.168.0.10, 포트를 23306
위와 같이 사용한다고 하면, 매번 배포할때마다 설정을 바꿔줘야하는 번거로움이 생긴다.
이런 번거로움을 해결하고자 설정파일에 각각의 서버의 설정정보를 기재해 놓고, 특정 서버의 설정으로 프로젝트를 실행 할 수 있도록 할수 있다
참고 링크 :
ttps://github.com/kkimsungchul/study/blob/master/Spring%20Boot/%5BSpring%20Boot%5D%20Spring%20Profile%20%EB%94%B0%EB%A5%B8%20%ED%99%98%EA%B2%BD%20%EC%84%A4%EC%A0%95.txt
근데 이러한 방법으로 하면 매번 빌드시에 개발서버면 active : test 로 바꾸고, 로컬서버면 active : local 로 바꾸고.. 이러한 매번 해줘야 하고
실수로 active : test로 넣고서 운영서버에 배포를 하면 오류발생하고 작동을 하지 않는다.
이러한 오류를 막기위해 해당 서버의 WAS(톰캣) 에다가 옵션을 지정하면, 해당 톰캣에서는 설정한 옵션으로만 실행되도록 할 수 있다.
아래에 파일은 예시로 작성한 내용이며, 현재는 local 설정을 사용한다고 되어있다.
여기서 다른설정을 사용하려고 하면 active : local 이부분의 local 을 test 또는 prod 로 변경 후 배포해야 한다
==================================================================================================================================================
spring :
profiles :
active : local
---
spring :
profiles: local
session :
timeout: 600
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://192.168.0.100:3306/stock?serverTimezone=UTC&characterEncoding=UTF-8
---
spring :
profiles: test
session :
timeout: 600
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://192.168.50.55:13306/stock?serverTimezone=UTC&characterEncoding=UTF-8
---
spring :
profiles: prod
session :
timeout: 600
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://192.168.0.10:23306/stock?serverTimezone=UTC&characterEncoding=UTF-8
==================================================================================================================================================
윈도우 기준이며 리눅스의 경우에는 "catalina.sh" 파일을 수정하면 된다.
test서버를 사용할 경우 아래와 같이 변경하고, test가 아닐경우 prod 나 local로 변경하면된다.
윈도우 기준 명령어 :
set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=test"
리눅스 기준 명령어 :
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=test"
문서상단부분이나 하단부분에 추가하면된다.
IF 문을 조심해서 추가하고, 설정했는데 적용이 안되면 위치를 바꿔보자
==================================================================================================================================================
setlocal ## 기존에 있던 최상단 시작부분
set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=test" ## 추가한 부분
==================================================================================================================================================