일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- scanner
- SpringBoot 2
- 카데인 알고리즘
- 사칙연산
- 자바 thread 실행 순서 제어
- array
- 수학
- Easy
- input
- JAVA11
- 자바입력
- heroku
- 자바 스레드 실행 순서 제어
- Kadane's Algorithm
- R
- hash table
Archives
- Today
- Total
DeFacto-Standard IT
Spring Boot 2.4에서 properties 사용하기 본문
Spring Boot 2.4 기준
- application.properties
wait.for-time=1s
- MainApplication
@SpringBootApplication
@ConfigurationPropertiesScan // ConfigurationProperties를 스캔하도록 설정. Since 2.2.0
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
- WaitProperties
properties를 읽어서 사용하는 클래스
@ConfigurationProperties("wait")
@ConstructorBinding // Since 2.2.0
public class WaitProperties {
private Duration forTime;
// properties의 wait.for-time이 바인딩되며, 기본값은 0
public WaitProperties(@DefaultValue("0") Duration forTime) {
this.forTime = forTime;
}
public Duration forTime() {
return forTime;
}
}
- properties가 Java Keyword인 경우
wait.for=1s
@ConfigurationProperties("wait")
@ConstructorBinding
public class WaitProperties {
// for는 Java의 키워드이기 때문에 for를 그대로 사용할 수 없음
private Duration forTime;
// properties의 wait.for이 바인딩되며, 기본값은 0
public WaitProperties(@DefaultValue("0") @Name("for") Duration forTime) {
this.forTime = forTime;
}
public Duration getFor() {
return forTime;
}
}
- import properties priority
spring.config.import 에 여러 properties파일이 있고, 같은 이름의 property를 갖는 경우,
리스트의 뒤에 있는 example2.properties의 wait.for가 우선순위가 높다.
# application.properties
# case1 : 우선순위 example2.properties > example.properties
spring.config.import=classpath:example.properties, example2.properties
# case2 : 우선순위 example.properties > example2.properties
spring.config.import=classpath:example2.properties, example.properties
# example.properties
wait.for=1s
# example2.properties
wait.for=4s
- import external properties
# application.properties
spring.config.import=${user.home}/demos/ext.properties
mac 기준 user.home은 '/Users/<user>'에 해당하므로, '/Users/<user>/demos/ext.properties'를 읽음
# /Users/<user>/demos/ext.properties
wait.for=1s
external properties 파일의 extension이 생략된 경우
# application.properties
# /Users/<user>/demos/ext를 읽음
spring.config.import=${user.home}/demos/ext[.properties]
- config tree
ConfigTreeConfigDataLocationResolver
/Users/<user>/demos/tree/wait/for 파일이 존재하는 경우
# application.properties
spring.config.import=configtree:${user.home}/demos/tree/
가져다 쓰려는 config key에 대한 파일이 없는 경우 에러가 날 수 있으므로, optional을 지정할 수 있음
# application.properties
spring.config.import=optional:configtree:${user.home}/demos/tree/
'SpringFramework > References' 카테고리의 다른 글
Object Serialization (JSON) (2) - jackson-databind# ObjectMapper Class (0) | 2018.05.03 |
---|---|
Object DeSerialization (JSON) (1) - @RequestBody (0) | 2018.05.03 |
Object Serialization (JSON) (3) - net.sf.json (0) | 2018.05.03 |
Object Serialization (JSON) (2) - jackson-databind# ObjectMapper Class (0) | 2018.05.03 |
Object Serialization (JSON) (1) - @RestController, @ResponseBody (0) | 2018.05.02 |
Comments