같은 접두사를 가지는 속성을 Bean에 매핑

편집일시: 2021-08-26 11:30 조회수: 2254 댓글수: 0
## 코드 작성 **application.properties** ``` person.firstName=Sato person.last-name=Taro person.age=18 ``` **Person.java** ``` package sample.springboot; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix="person") public class Person { private String firstName; private String lastName; private int age; public void setFirstName(String firstName) { this.firstName = firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setAge(int age) { this.age = age; } public void hello() { System.out.println(firstName + " " + lastName + " : " + age); } } ``` **Main.java** ``` package sample.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication @EnableConfigurationProperties public class Main { public static void main(String[] args) { try (ConfigurableApplicationContext ctx = SpringApplication.run(Main.class, args)) { Person person = ctx.getBean(Person.class); person.hello(); } } } ``` ### 실행 결과 ``` Sato Taro : 18 ``` - `@ConfigurationProperties`을 사용하면 특정 접두사와 속성들을 Bean에 매핑 할 수 있다.    - Bean은 setter 메소드가 필요하다.    - 필드의 이름은 낙타 대문자(camelcase) 이외에도 하이픈(-) 구분과 언더스코어(_) 경우에도 매핑을해 준다. - 이 구조를 활성화하려면 `@EnableConfigurationProperties` 어노테이션을 추가를 해야 한다.    - 엄밀히 말하면, `@Configuration` 어노테이션이 부여 된 클래스에 추가한다.

다음 글 : Yaml 사용