지난 시간에는 자동 구성 정보에 Environment 값을 지정하는 방법을 사용했습니다.
이번에는@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;
}
}
@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