Spring boot application.yml 변수 처리
2024. 8. 14. 00:44ㆍJava/Spring Boot
@Value 사용: 변수
Class 생성시, 값이 null임
# application.yml
mail:
host: smtp.co.kr
# 정의
@Component
public class EmailSender {
@Value("${mail.host}")
private String host;
public EmailSender() {
props = System.getProperties();
# Sprng boot 기동시, null 출력
log.debug(this.host);
}
public void test() {
log.debug("host: " + host);
}
}
# 호출
@RequestMapping("/test")
public @ResponseBody String deGetHelloWorld() {
# 호출시, smtp.co.kr 출력
emailSender.test();
return "Hello World";
}
@Value 사용: 생성자 파라메터
Class 생성시, 값이 출력됨
# application.yml
mail:
host: smtp.co.kr
# 정의
@Component
public class EmailSender {
private String host;
public EmailSender(@Value("${spring.application.name}") String host) {
this.host = host;
props = System.getProperties();
# Sprng boot 기동시, smtp.co.kr 출력
log.debug(this.host);
}
public void test() {
log.debug("host: " + host);
}
}
# 호출
@RequestMapping("/test")
public @ResponseBody String deGetHelloWorld() {
# 호출시, smtp.co.kr 출력
emailSender.test();
return "Hello World";
}
@PostConstruct 사용
'@Value 사용: 변수'와 같지만, init() 함수가 객체 생성시 자동으로 실행됨
# application.yml
mail:
host: smtp.co.kr
# 정의
@Component
public class EmailSender {
@Value("${mail.host}")
private String host;
public EmailSender() {
props = System.getProperties();
# Sprng boot 기동시, null 출력
log.debug(this.host);
}
@PostConstruct
public void init() {
# 생성자 이후에 자동으로 실행
# smtp.co.kr 출력
log.debug("init: " + host);
}
public void test() {
log.debug("host: " + host);
}
}
# 호출
@RequestMapping("/test")
public @ResponseBody String deGetHelloWorld() {
# 호출시, smtp.co.kr 출력
emailSender.test();
return "Hello World";
}
setter 설정
' @PostConstruct 사용 '와 비슷하게 객체 생성시, 자동으로 실행됨
# application.yml
mail:
host: smtp.co.kr
# 정의
@Component
public class EmailSender {
private String host;
public EmailSender() {
props = System.getProperties();
# Sprng boot 기동시, null 출력
log.debug(this.host);
}
@Value("${mail.host}")
public void setHost(String host) {
this.host = host;
# 생성자 이후에 자동으로 실행
log.debug("setter: " + this.host);
}
public void test() {
log.debug("host: " + host);
}
}
# 호출
@RequestMapping("/test")
public @ResponseBody String deGetHelloWorld() {
# 호출시, smtp.co.kr 출력
emailSender.test();
return "Hello World";
}
'Java > Spring Boot' 카테고리의 다른 글
Spring boot mapping 설정 (0) | 2024.10.01 |
---|---|
Spring boot Gmail 연동하여 stmp로 메일보내기 (0) | 2024.08.14 |
Spring boot static method에서 @Autowired field를 호출해야 하는 경우 (0) | 2024.08.13 |
Spring boot 정적 파일 위치 셋팅 (0) | 2024.08.11 |
Spring boot access log 설정 (0) | 2024.08.11 |