SpringBoot는 여러가지 Configuration을 application.properties에 담아 사용한다.
application.properties를 사용 해도 되지만 application.yml도 지원 하기 때문에, 새로 만들어 Hierarchy를 표현해서 보기 편하도록 작성 하는 방법도 있다.
더불어서, 이 설정파일인 application.yml의 값들을 불러와서 사용 하는 @Value 어노테이션을 간단히 정리 해 보려고 한다.
이전에 application.yml을 사용 한 글이 있었는데, 그 글과 유사하게 작성 해 보려고 한다.
다만 통상적인 db세팅이나 서버 포트 세팅같은 부분들 외에, 특정 값을 가져오는 것을 한번 만들어 보려고 한다
myspring: test: name: wool age: 20 myspringListTest: banana,orange,apple
기본적인 세팅 외에, myspring이라는 이름 아래에 test.name, test.age 등을 만들어 놓았다.
접근 할 때에는 그냥 .
을 뒤에 붙여서 하위 요소들로 접근 해 주면 된다.
해당하는 값들을 불러 올 수 있는 코드를 만들고 테스트 해 보자.
테스트를 위해 ConfigurationAnnotationTests 클래스를 만들고, 간단한 테스트를 작성 해 보려고 한다
ConfigurationAnnotationTest.java
코드들을 하나씩 작성 해 보자. 위의 application.yml를 참고하여 값을 가져오도록 하겠다.
위의 코드는, @Value 어노테이션을 사용해서 configuration 값에 접근한 코드이다.
"${myspring.test.name}"
는 myspring 하위의 test에 접근 후, 그 하위에 있는 name에 접근한다고 명시 해 주는 역할을 한다
위의 application.yml의 name을 가져왔으니, age도 가져와 보자. 예상 한 대로, 위에서 본 코드에서 name을 age로만 바꾸면 된다.
이처럼 일반 단일 값 들은 하나씩 접근 해 주면 된다.
myspringListTest: banana,orange,apple
와 같이 하나로 묶여있는 데이터는 적절하게 받아 줄 수 있다.
String[] array
를 사용 해 도 되고, List<String>
을 사용 해 서 받아주어도 된다.
테스트 코드를 실행하면, 우리가 configuration 파일에서 가져온 값과 내가 작성한 값이 서로 맞는지 확인한다.
값을 잘 가져왔다면 테스트가 실행이 성공 했을 것이다.