개발/JAVA
SpringBoot Annotation : @ConfigurationProperties
쩨이엠
2020. 5. 8. 08:44
728x90
반응형
@ConfigurationProperties
property파일에 있는 키들을 객체로 만들어 접근할 수 있게 만드는 어노테이션이다
필요한 dependency
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
application.yml
adminapi:
restapi:
urlprefix: "urlprefix"
token: "token-auth"
period: 300
max-window-size: 3600
이 경우 객체로 받을 때 prefix로 adminapi를 사용하면 그 밑의 property에 접근할 수 있다
AppConfig.java
package com.test.config;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "adminapi")
@Getter
@Setter
@ToString
public class AppConfig {
private RestApiConfig restapi;
@Getter
@Setter
@ToString
public static class RestApiConfig {
private String urlprefix;
private String token;
private Integer period;
private Integer maxWindowSize;
}
}
프로퍼티에 있는 하이픈(-)이나 언더바(_) 둘다 바인딩이 가능하다
실제 사용 코드
@Slf4j
@Component
@RequiredArgsConstructor
public class ApiClient {
private final AppConfig appConfig;
public void test(){
log.info(appConfig.getRestapi().getUrlprefix()); //urlprefix
log.info(appConfig.getRestapi().getToken()); //token-auth
}
}
728x90
반응형