0

プロファイルに応じて異なる CORS オリジンを持つように WebConfig Bean を構成したいと考えていますapplication.properties

何らかの理由で、 my の値がapplication-local.propertiesWebConfig 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);
  }
}
4

0 に答える 0