-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
application.properties 및 가져오는 HolomanProperties.class에 대한 질문입니다.
21.01.19 21:55 작성 조회수 129
0
디버깅을 돌려보니 application.properties에서 값을 제대로 못 가져와서 질문드립니다. 값엔 현재 name: null, howLong: 0이 찍히고 있는 상태고요
하단은 HolomanConfiguration.java
@Configuration
@EnableConfigurationProperties(HolomanProperties.class)
public class HolomanConfiguration {
@Bean
@ConditionalOnMissingBean
public Holoman holman(HolomanProperties properties) {
Holoman holoman = new Holoman();
System.out.println("properties: " + properties.getHowLong());
System.out.println("properties: " + properties.getName());
holoman.setHowLong(properties.getHowLong());
holoman.setName(properties.getName());
return holoman;
}
}
하단 소스는 HolomanProperties.java 입니다.
@ConfigurationProperties("holoman")
public class HolomanProperties {
private String name;
private int howLong;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHowLong() {
return howLong;
}
public void setHowLong(int howLong) {
this.howLong = howLong;
}
}
application.properties엔
holoman.name = keesun
holoman.how-long = 55
입력이 정상적으로 되어 있고요 ㅠㅠ..
현재 STS와 Spring은 모두 최신버전입니다.
직접 값을 set해주면 정상적으로 console에 찍히는 상황입니다.!
답변을 작성해보세요.
1
백기선
지식공유자2021.01.27
HolomanProperties와 HolomanConfiguration이 적용되려면 저 두 코드가 들어있는 프로젝트를 사용하는 쪽에 Holoman 타입의 빈이 없어야만 @ConditionalOnMissingBean이 적용되면서 프로퍼티를 사용한 Holoman이라는 빈을 만들 수 있습니다. 참조하는 프로젝트에서 Holoman 타입의 빈을 직접 만든건 아닌지 확인해 보시기 바랍니다.
답변 1