티스토리 뷰
반응형
참고
요약
- 실행시 명령어 매개변수
- Java System 속성
- OS 환경 변수
- @ProperySource
- 패키징된 jar 외부의 애플리케이션 속성
- 패키징된 jar 내부의 애플리케이션 속성
- 기본 속성
실습
hello: ingnoh
@SpringBootApplication
@RestController
@Log4j2
public class DemoApplication {
private final String injuk;
public DemoApplication(@Value("${hello}") String injuk) {
this.injuk = injuk;
}
@GetMapping("/")
public String injuk() {
log.info("Log now: " + injuk);
return injuk;
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
- 위 내용대로 build된 jar 파일을 준비하자.
1. 패키징된 jar의 내부 애플리케이션 속성
- application.properties 또는 application.yml 등에 포함된 hello 속성을 그대로 사용하게 된다.
[~] java -jar [jar_파일_이름]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.2)
// 생략
- 웹 브라우저를 통해 http://localhost:8080 으로 접속하거나 다음과 같이 새로운 터미널을 열어 curl로 확인하자.
[~] curl localhost:8080
ingnoh%
[~]
- application.yml의 hello: ingnoh 값이 그대로 반환되고 있다.
2. OS 환경 변수
- 운영체제 자체에 동명의 환경변수가 설정되어 있다면, application.yml 등의 값을 무시하고 환경변수를 사용한다.
- export를 활용하여 다음과 같이 진행하자.
[~] export hello=thisislocalenv
[~] echo $hello
thisislocalenv
[~] java -jar [jar_파일_이름]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.2)
// 생략
- 웹 브라우저를 통해 http://localhost:8080 으로 접속하거나 다음과 같이 새로운 터미널을 열어 curl로 확인하자.
[~] curl localhost:8080
thisislocalenv%
[~]
- 여전히 application.yml에 hello: ingnoh로 설정되어 있으나, 환경변수의 값이 사용된다.
- 즉, 환경변수의 값이 우선순위가 더 높다.
3. 실행시 명령어 매개변수로 전달
- -D 옵션을 통해 동명의 매개변수 키 / 값을 전달한다.
java -jar -Dhello=newParameters! build/libs/demo-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.2)
// 생략
- 웹 브라우저를 통해 http://localhost:8080 으로 접속하거나 다음과 같이 새로운 터미널을 열어 curl로 확인하자.
[~] curl localhost:8080
newParameters!%
[~]
- application.yml의 hello 속성과 환경변수를 무시하고 -D 옵션에서 전달한 동명의 매개변수 값을 사용한다.
- 즉, 앞의 두 경우보다 명령줄에 전달한 매개변수의 우선순위가 더 높다.
'Dev. > java' 카테고리의 다른 글
[Spring Boot] 애플리케이션 실행 직후 Process finished with exit code 0 (0) | 2021.07.21 |
---|---|
[Java] 현재 사용 중인 GC 보기 (0) | 2021.07.19 |
[Spring Cloud Netflix] Eureka Server, Client 설정 (0) | 2021.07.17 |
[Java] HttpURLConnection (0) | 2021.05.21 |
[Java] Primitive type, Reference type (0) | 2021.02.04 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- AWS IoT
- postgresql
- Gradle
- Spring Cloud Config
- etc
- JEST
- hashicorp
- react
- dev
- kotlin
- shell
- terraform
- Node.js
- Docker
- JPA
- mysql
- Vault
- pgloader
- eureka
- spring boot
- Database
- AWS
- IntelliJ
- Linux
- javascript
- Git
- 코딩테스트
- jQuery
- Puppeteer
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함