일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- kotlin 리팩터링
- 스프링di
- Spring
- open-session-in-view
- 비기능적 요구사항
- 자바 필터
- IOC
- 그래프큐엘
- 동적파라미터
- jpa lazy
- 토비의 스프링
- spring formatter
- 스프링
- kotlin ::
- ioc컨테이너
- method refetence
- 소프트웨어의 품격
- 도커 이미지 빌드
- fetch join
- 수정자주입
- 생성자주입
- 기능적 요구사항
- java predicate
- Atomicity
- 스프링 포매터
- 스프링 시큐리티 설정
- 스프링부트 도커
- 스프링시큐리티
- jpa no session
- 정적팩토리메서드
Archives
- Today
- Total
공부기록
YAML 파일을 변수에 매핑하기. (@Value, @ConfigurationProperties) 본문
반응형
YAML 파일 변수에 매핑하기. (@Value, @ConfigurationProperties)
@Value
application.yml
property:
test:
name: property depth test
propertyTest: test
propertyTestList: a,b,c
ValueTest.class
@SpringBootTest
public class AutoConfigurationApplicationTests {
@Value("${property.test.name}")
private String propertyTestName;
@Value("${propertyTest}")
private String propertyTest;
@Value("${noKey:default value}")
private String defaultValue;
@Value("${propertyTestList}")
private String[] propertyTestArray;
@Value("#{'${propertyTestList}'.split(',')}")
private List<String> propertyTestList;
@Test
void testValue() {
assertEquals("property depth test", propertyTestName);
assertEquals("test", propertyTest);
assertEquals("default value", defaultValue);
assertArrayEquals(new String[]{"a","b","c"}, propertyTestArray);
assertEquals(List.of("a","b","c"), propertyTestList);
}
}
@ConfigurationProperties
application.yml
car:
list:
- name: Porsche911
color: red
- name: K5
color: black
Car.class
public class Car {
private String name;
private String color;
@Override
public String toString() {
return "Car{" +
"name='" + name + '\'' +
", color='" + color + '\'' +
'}';
}
public void setName(String name) {
this.name = name;
}
public void setColor(String color) {
this.color = color;
}
}
CarProperty.class
@Component
@ConfigurationProperties("car")
public class CarProperty {
private List<Car> list;
public List<Car> getList() {
return list;
}
public void setList(List<Car> list) {
this.list = list;
}
}
Car.class
,CarProperty.class
에Setter
메서드 또는Constructor
가 필요하다.- 바인딩할 변수의 이름과
yaml
파일에 있는 이름이 매치해야한다. (케밥표기법, 소문자 가능) @Value
와는 다르게SpEl
은 사용이 불가하다.@Component
로 스프링이 관리하게 해야한다
반응형
'Spring' 카테고리의 다른 글
@DataJpaTest는 임베디드 디비를 쓴다 (1) | 2020.08.04 |
---|---|
[SPRING] 스프링부트로 도커 이미지 만들기. (4) | 2020.06.02 |
HTTP2로 요청을 보내보자 (0) | 2020.01.29 |
ResourceLoader (2) | 2020.01.22 |
SPRING VALIDATOR (0) | 2019.11.13 |