プロファイルに応じて異なる CORS オリジンを持つように WebConfig Bean を構成したいと考えていますapplication.properties
。
何らかの理由で、 my の値がapplication-local.properties
WebConfig Bean のフィールドに挿入されません。
ここで使用@Value
すると機能します(実際の例については最後の見出しを確認してください)
エントリークラス
@SpringBootApplication
@EnableEurekaClient
@ComponentScan("com.company.coma")
public class EventWebApplication {
public static void main(String[] args) {
SpringApplication.run(EventWebApplication.class, args);
}
}
WebConfig.java
@Configuration
@ConfigurationProperties("coma.cors")
public class WebConfig extends WebMvcConfigurerAdapter {
private String origin;
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping(Resources.Services.APIs.Event.GET_STATUS + "/**")
.allowedOrigins(origin);
}
}
application-local.properties
coma.cors.origin=http://localhost:8080
実行
でアプリケーションを開始する-Dspring.profiles.active=local
結果
実施例
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Value("${coma.cors.origin}") // this works
private String origin;
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping(Resources.Services.APIs.Event.GET_STATUS + "/**")
.allowedOrigins(origin);
}
}