일상일지

[JBoss EAP 7.2] 소스 내 properties 대신 서버 JAVA_OPTS 환경변수 사용하는 법 본문

개발

[JBoss EAP 7.2] 소스 내 properties 대신 서버 JAVA_OPTS 환경변수 사용하는 법

서호Seoho 2021. 1. 5. 13:04
반응형

안녕하세요. 바한입니다.

다들 소스내에 config.properties 등의 properties 파일을 두어 변수들을 관리하거나 하실텐데요,

제가 소개해드릴 방법은 properties 파일 대신, 자바 환경 변수를 이용해 변수를 관리하는 방법입니다. 즉, 소스파일이 아닌 서버파일로 변수를 관리하게 됩니다.

 

보통 여러 서버가 하나의 소스코드를 바라볼 시, 각 서버마다 변수가 달라야 할 때 사용하게 됩니다.

 

 

 

 

 

1. 환경변수  설정

2. 자바 소스코드 내에서 불러오기

 

 

 

 

 

1. 환경변수 설정

JBoss 파일 내의 env.sh를 수정하거나, standalone.bat을 수정하거나, standalone.sh를 수정하시면 됩니다.

저같은 경우는 window에서는 standalone.bat을 수정했고,

CentOS에서는 env.sh를 수정했습니다. 경우에 맞게 수정해주세요.

 

없는 파일 생성하실 필요 없이 셋중에 있는 파일에다가 적용해주세요.

 

 

>env.sh에 적용할 때,

export JAVA_OPTS="$JAVA_OPTS -DserverInfo.port=8088 -D변수명=값"

 

>standalone.bat에 적용할 때,

set "JAVA_OPTS=$JAVA_OPTS$ -DserverInfo.port=8088 -D변수명=값"

 

>standalone.sh에 적용할 때,

JAVA_OPTS="$JAVA_OPTS -DserverInfo.port=8088 -D변수명=값"

 

-DserverInfo.port=8088은 예시고, -D변수명=값 형식으로 넣어주시면 됩니다. 변수가 여러개일 경우에는 공백을 두고 뒤에다가 이어 쓰시면 됩니다.

각 파일들을 보면 저런 코드가 모여있는 곳이 한군데 씩 있습니다. 적당히 저런 코드가 모여있는 곳에 넣어주세요.

 

이클립스의 경우도 덤으로 써두겠습니다.

 

 

>이클립스

서버 더블클릭 > Open launch configuration > VM arguments 내에 값 추가

-DserverInfo.port=8088 -D변수명=값

 

 

 

 

 

2. 자바 소스코드 내에서 불러오기

System.getProperty("serverInfo.port");

System.getProperty("변수명");

 

 

으로 불러오시면 됩니다.

 

String port = System.getProperty("serverInfo.port");

이런식으로 변수에 저장해서 쓸 수 있겠죠?

 

 

 

 

이상으로 JBoss에서 서버에 변수를 두어 사용하는 법을 마칩니다.

감사합니다.

반응형
Comments