반응형
@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
끝
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[docker] 공유된 volume 에 접근이 안될 때 (0) | 2019.11.02 |
---|---|
[test] nGrinder 설치 및 테스트환경 구축(mac) (0) | 2019.10.26 |
[java] 빌더 패턴(Builder Pattern) 주의점과 사용이유 (0) | 2019.10.18 |
[intellij] mybatis autowired mapper 빨간불 없애기 (0) | 2019.10.17 |
[java] List 안에 Map value 찾기(lambda 사용) (0) | 2019.10.13 |
댓글