Hello, Freakin world!

[Spring boot] @Value 에 대해서 본문

Spring boot

[Spring boot] @Value 에 대해서

johnna_endure 2019. 12. 20. 14:59
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;

import static org.assertj.core.api.Assertions.assertThat;

@SpringBootTest
class ValuetestApplicationTests {

    @Value("Default")
    private String defaultValue;

    @Value("1")
    private int one;

    @Value("true")
    private boolean maybeTrue;

    @Value("${hello}")
    private String hello;

    @Value("${world:default}")
    private String world;

    @Test
    void contextLoads() {
        assertThat(defaultValue).isEqualTo("Default");
        assertThat(hello).isEqualTo("hello"); // application.properties => hello="hello"
        assertThat(world).isEqualTo("default"); // application.properties => don't exist in application.properties file.
        assertThat(one).isEqualTo(1);
        assertThat(maybeTrue).isEqualTo(true);
    }

}

 

 

뭐 특별한 기능이 있는건 아니다. 

 

기본적으로는 변수에 값을 할당하기 위한 애너테이션이며, 기본값을 설정하거나 시스템 변수나 spring 환경변수(application.properties파일)에 있는 값에 접근해 할당할 수 있다. 그리고 메서드 레벨에도 사용하는 경우가 있는데 그럴 경우 모든 인수에 @Value에 전달된 String 값을 할당한다.

 

기본적으로 @Value에는 String 값만을 전달할 수 있지만, 내부의 컨버터가 int, boolean 등의 타입 변환을 시켜주기도 한다.

Comments