JAVA

@ConfigurationProperties

Strickland 2024. 5. 3. 22:46

@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