0

我想根据配置文件将我的 WebConfig bean 配置为具有不同的 CORS 来源application.properties

由于某种原因,我的值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);
  }
}

应用程序-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