Home
Backend Engineering
SpringBoot Configuration에서 값 가져오기 - @Value
울이
울이
February 04, 2022
1 min

Table Of Contents

01
SpringBoot 의 Configuration
02
application.yml 설정하기
03
Test Code 작성
04
전체 TestCode

SpringBoot 의 Configuration

SpringBoot는 여러가지 Configuration을 application.properties에 담아 사용한다.

application.properties를 사용 해도 되지만 application.yml도 지원 하기 때문에, 새로 만들어 Hierarchy를 표현해서 보기 편하도록 작성 하는 방법도 있다.

더불어서, 이 설정파일인 application.yml의 값들을 불러와서 사용 하는 @Value 어노테이션을 간단히 정리 해 보려고 한다.

application.yml 설정하기

이전에 application.yml을 사용 한 글이 있었는데, 그 글과 유사하게 작성 해 보려고 한다.

다만 통상적인 db세팅이나 서버 포트 세팅같은 부분들 외에, 특정 값을 가져오는 것을 한번 만들어 보려고 한다

myspring:
  test:
    name: wool
    age: 20

myspringListTest: banana,orange,apple

기본적인 세팅 외에, myspring이라는 이름 아래에 test.name, test.age 등을 만들어 놓았다.

접근 할 때에는 그냥 . 을 뒤에 붙여서 하위 요소들로 접근 해 주면 된다.

Test Code 작성

해당하는 값들을 불러 올 수 있는 코드를 만들고 테스트 해 보자.

테스트를 위해 ConfigurationAnnotationTests 클래스를 만들고, 간단한 테스트를 작성 해 보려고 한다

ConfigurationAnnotationTest.java

기본 테스트코드 - ConfigurationAnnotationTest.java
기본 테스트코드 - ConfigurationAnnotationTest.java

코드들을 하나씩 작성 해 보자. 위의 application.yml를 참고하여 값을 가져오도록 하겠다.

yml파일에 있는 값 가져오기2 - String
yml파일에 있는 값 가져오기2 - String

위의 코드는, @Value 어노테이션을 사용해서 configuration 값에 접근한 코드이다.

"${myspring.test.name}" 는 myspring 하위의 test에 접근 후, 그 하위에 있는 name에 접근한다고 명시 해 주는 역할을 한다

위의 application.yml의 name을 가져왔으니, age도 가져와 보자. 예상 한 대로, 위에서 본 코드에서 name을 age로만 바꾸면 된다.

yml파일에 있는 값 가져오기2 - int
yml파일에 있는 값 가져오기2 - int

이처럼 일반 단일 값 들은 하나씩 접근 해 주면 된다.

myspringListTest: banana,orange,apple 와 같이 하나로 묶여있는 데이터는 적절하게 받아 줄 수 있다.

String[] array를 사용 해 도 되고, List<String>을 사용 해 서 받아주어도 된다.

yml파일에 있는 값 array로 가져오기
yml파일에 있는 값 array로 가져오기

전체 TestCode

전체 테스트코드
전체 테스트코드

테스트 코드를 실행하면, 우리가 configuration 파일에서 가져온 값과 내가 작성한 값이 서로 맞는지 확인한다.

값을 잘 가져왔다면 테스트가 실행이 성공 했을 것이다.


Tags

#Spring#Java#SpringBoot#SpringTest#configuration#@Value
Previous Article
Spring Boot DB 연동과 테스트
울이

울이

개발자 울이

경험하고 사용하고 개선하는 것, 그리고 소통하면서 성장하는 것을 좋아합니다.

Expertise

Backend
Frontend
Data Engineering

Social Media

githublinkedinwebsiteinstagram

Related Posts

ActiveMQ와 JMS를 사용한 SpringBoot 메시지
ActiveMQ와 JMS를 사용한 SpringBoot 메시지
December 24, 2022
1 min
© 2023, All Rights Reserved.

Quick Links

Home

Social Media