본문 바로가기
공부/프로그래밍

[spring] @Value 활용(Field, Method, SqEL)

by demonic_ 2019. 10. 20.
반응형

 

@Value를 활용할 수 있는 범위는 꽤 넓다. 인터페이스를 살펴보면 Field 뿐 아니라 Method, Parameter, Annotation_type 등 사용할 수 있다.

 

여기서는 필드, 메서드 그리고 Expression Language(SpEL) 를 이용한 방법을 소개하려 한다.

 

 

application.properties 설정

 

text.test1=hi
text.test2=Now Time:

 

SampleParameter 클래스

@Slf4j
@Getter
@Component
public class SampleParameter {

	// Field
    @Value("${text.test1}")
    private String test1;


    // method
    private String test2;
    @Value("${text.test2}")
    public void setTest2(String test2) {
        this.test2 = test2 + LocalDateTime.now();
    }

    // SqEL
    @Value("#{1+1}")
    private int test3;

	// SqEL
    @Value("#{'test4: aa'}")
    private String test4;
}

 

각각 호출하기

@Component
@AllArgsConstructor
public class AppRunner implements ApplicationRunner {

	// Constructor Injection 주입
    private final SampleParameter sampleParameter;


    @Override
    public void run(ApplicationArguments args) {
        System.out.println("======================");
        System.out.println(sampleParameter.getTest1());
        System.out.println(sampleParameter.getTest2());
        System.out.println(sampleParameter.getTest3());
        System.out.println(sampleParameter.getTest4());
    }
}

 

결과

hi
Now Time:2019-10-19T09:28:17.833477
2
test4: aa

반응형

댓글