You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot如何在@CrossOrigin注解中引用application.properties跨域配置

解决Spring Boot @CrossOrigin注解引用配置文件中多CORS源的问题

场景说明

多环境部署的Spring Boot应用,需配置多个CORS源支持Web前端访问。原本直接在@CrossOrigin注解中传入逗号分隔的域名列表,无需对外暴露的控制器则不添加该注解;但随着域名列表变长,硬编码在注解里维护起来太麻烦,希望将配置移到application.properties中统一管理。

实现步骤

  1. 在配置文件中定义CORS源
    在application.properties(或对应环境的配置文件,如application-prod.properties)中添加配置项:

    allowed.cors.origins=https://domain-a.com,https://domain-b.com,https://test.domain.com
    
  2. 在@CrossOrigin注解中直接引用配置
    无需额外处理,直接在注解的origins参数中使用${配置项键名}即可读取配置值:

    @RestController
    @CrossOrigin(origins = "${allowed.cors.origins}")
    public class OpenApiController {
        // 对外开放的接口方法
    }
    
  3. 代码中按需注入配置值
    如果业务逻辑中需要用到这个CORS源列表,还可以通过@Value注解注入后使用:

    @RestController
    @CrossOrigin(origins = "${allowed.cors.origins}")
    public class OpenApiController {
    
        @Value("${allowed.cors.origins}")
        private String allowedCorsOrigins;
    
        // 示例:将字符串分割为域名列表
        private List<String> parseCorsOrigins() {
            return Arrays.asList(allowedCorsOrigins.split(","));
        }
    }
    

额外说明

  • 无需对外访问的控制器保持不添加@CrossOrigin注解,自然会限制跨域请求。
  • 多环境部署时,只需在对应环境的配置文件中修改allowed.cors.origins的值即可,无需改动业务代码。

内容的提问来源于stack exchange,提问作者pixel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:50:10