티스토리 뷰

들어가며

  • application.properties에 설정한 프로퍼티중 여러 값이 같은 key로 묶어서 하나의 Bean으로 등록하는 방법이 있다.

방법

@ConfigurationProperties

  • application.properties 파일에 같은 key로 묶인 프로퍼티를 정의해준다.
kim.name = JinSeong
kim.age = 22
kim.size = 20

 

  • 그 후 kim이라는 key를 묶을 프로퍼티 클래스를 생성해준다.
    • 이때 @ConfigurationProperties("키 값")을 넣어줘야 함
@ConfigurationProperties("kim")
public class MyProperties {
    private String name;
    private int age;
    private int size;

    //getter, setter 생략함
}

 

@EnableConfigurationProperties

  • 해당 어노테이션을 아래와 같이 명시를 해줘야지 프로퍼티를 빈으로 등록하여 사용을 할 수가 있다.
@SpringBootApplication
@EnableConfigurationProperties("kim")
public class Application {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Application.class);
        app.setWebApplicationType(WebApplicationType.NONE);
        app.run(args);
    }
}
  • 그치만 SpringBoot에서는 기본적으로 등록이 되어 있어서 명시해줄 필요가 없다.

@Component

  • Bean 등록을 위해서 프로터피 클래스를 빈으로 명시를 해주자.
@Component
@ConfigurationProperties("kim")
public class MyProperties {
    private String name;
    private int age;
    private int size;

    //getter, setter 생략함
}

 

사용 예제

  • 아래는 Runner 클래스에서 프로퍼티를 주입받아 출력하는 예제이다.
    • Runner가 궁금하다면 아래 포스트 참고
 

[Spring Boot] 애플리케이션 실행 후 특정 코드를 수행하는 방법 (Application Runner 사용법)

들어가며 필요에 따라 스프링부트 애플리케이션이 처음 실행되고 난 시점에 특정한 코드나 동작을 수행하고자 할 때가 있다. 이때 사용할 수 있는 Application Runner, Command Line Runner를 알아보고자 한다. Ap..

jinseongsoft.tistory.com

@Component
public class MyRunner implements ApplicationRunner {
    @Autowired
    private MyProperties properties;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(String.format("My name: %s, My age: %s, My size: %s", properties.getName(), properties.getAge(), properties.getSize()));
    }
}

끝으로

이 글이 도움이 되었다면, 하단의 Google 광고 👎👎👎 한번씩 클릭 부탁 드립니다. 🙏🙏🙏

광고 클릭은 많은 힘이 됩니다! 

반응형
댓글