@ConfigurationProperties 어노테이션은 외부 설정 파일에서 속성 값을 가져와서 Java 객체의 필드에 주입할 수 있다.
아래의 코드를 보자
package com.hyukjin.practicespringboot;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "currency-service")
@Component
public class CurrencyServiceConfiguration {
private String url;
private String username;
private String key;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
설정 클래스를 만들고 @ConfigurationProperties 어노테이션을 붙여준다.
prefix에 넘길 인자값은 내가 설정할 속성의 이름이다.
다음은 application.properties 를 설정해주자
spring.application.name=practice-spring-boot
logging.level.org.springframework=debug
spring.profiles.active=dev
설정 프로필로 profile 을 active 해놓았다. application-dev.properties 는 다음과 같다.
logging.level.org.springframework=trace
currency-service.url=http://default.hyukjin.com
currency-service.username=thisisdev
currency-service.key=dasdkjj
이제 설정을 끝났음으로 실제 테스트를 해보자
아래의 컨트롤러를 만들어주자
package com.hyukjin.practicespringboot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RestController
public class CurrencyConfigurationController {
@Autowired
private CurrencyServiceConfiguration currencyServiceConfiguration;
@RequestMapping(("/currency-configuration"))
public CurrencyServiceConfiguration retrieveAllCourses() {
return currencyServiceConfiguration;
}
}
내가 등록한 CurrencyServiceConfiguration 은 스프링 Bean 으로서 등록 되어있을 거고 @Autowied 어노테이션으로 가져온 후 반환해준다.
실제 결과는 아래와 같다.
'JAVA' 카테고리의 다른 글
JSP 서빙/ MAVEN (0) | 2024.05.04 |
---|---|
JDBC / Maven (0) | 2024.05.04 |
@Lazy (0) | 2024.05.01 |
HTTP 요청 메시지 - 단순 텍스트 (0) | 2024.04.30 |
HTTP 요청 파라미터 - @ModelAttribute (0) | 2024.04.30 |