@Value와 PropertySourcesPlaceholderConfigurer

Sol's·2023년 6월 1일
0

토비의 스프링 부트

목록 보기
25/31

지난 시간에는 자동 구성 정보에 Environment 값을 지정하는 방법을 사용했습니다.
이번에는 @Value를 통해 빈 클래스에 필드를 만들어 환경정보를 저장해 보겠습니다.

@Value

@Value("${contextPath}") 처럼 사용하면 됩니다.

@MyAutoConfiguration
@ConditionalMyOnClass("org.apache.catalina.startup.Tomcat")
public class TomcatWebServerConfig {
    @Value("${contextPath}")// application.properties에서 읽어옵니다.
    String contextPath;
    @Bean("tomcatWebServerFactory")
    @ConditionalOnMissingBean // 같은 타입의 Bean이 없다면 생성해라
    public ServletWebServerFactory servletWebServerFactory(Environment env){
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.setContextPath(env.getProperty(contextPath));
        return factory;
    }
}
  • PropertySourcesPlaceholderConfigurer가 환경변수정보를 처리해 줍니다!
@MyAutoConfiguration
public class PropertyPlaceholderConfig {
    @Bean
    PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}
  • 꼭 자동 구성정보에 추가를 해주어야 합니다!
tobyspring.config.autoconfig.PropertyPlaceholderConfig
tobyspring.config.autoconfig.TomcatWebServerConfig
tobyspring.config.autoconfig.JettyWebServerConfig
tobyspring.config.autoconfig.DispatcherServletConfig

profile
배우고, 생각하고, 행동해라

0개의 댓글