• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

답변을 작성해보세요.

1

HolomanProperties와 HolomanConfiguration이 적용되려면 저 두 코드가 들어있는 프로젝트를 사용하는 쪽에 Holoman 타입의 빈이 없어야만 @ConditionalOnMissingBean이 적용되면서 프로퍼티를 사용한 Holoman이라는 빈을 만들 수 있습니다. 참조하는 프로젝트에서 Holoman 타입의 빈을 직접 만든건 아닌지 확인해 보시기 바랍니다.