쩨이엠 개발 블로그

SpringBoot Annotation : @ConfigurationProperties 본문

개발/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
반응형
Comments