我想根据配置文件将我的 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);
}
}