我在Spring中使用了CrossOrigin注解。现在我想将一个属性作为值注入到注解中。我没有让它工作。
现在我访问我的属性如下:
@Value("${settings.cors_origin}")
String cors_origin;
我想将此特性注入到CrossOrigin注记:
....
@CrossOrigin(origins = cors_origin)
@RequestMapping(value="/request", method= RequestMethod.GET, produces = "application/json")
public ResponseEntity<?> getMethod()
{
...
我已经试过了:
@CrossOrigin(origins = "${settings.cors_origin}")
- 编辑1:**
现在我尝试在我的spring配置中全局设置CORS头:
<context:property-placeholder location="classpath*:*appsettings.properties"/>
<mvc:cors>
<mvc:mapping path="/api/**"
allowed-origins="${test}"
allowed-methods="GET, PUT, OPTIONS, POST"/>
</mvc:cors>
此设置也不起作用!允许的原点与属性文件中指定的原点不相同。我认为它不会将变量转换为值?当我在Spring配置allowed-origins中手动设置IP地址时,它起作用。设置有问题...
- 应用程序设置.属性:*
test=http://192.168.1.200
- 编辑2:**
- S O L V E D**
经过一段时间的故障排除,我现在解决了这个问题:-)现在我再次使用注解@CrossOrigin。我必须将***RequestMethod Options***添加到Spring RequestMapping:
@RestController
@CrossOrigin(origins = {"${settings.cors_origin}"})
@RequestMapping("/api/v1")
public class MainController {
@RequestMapping(value="/request", method = {RequestMethod.GET, RequestMethod.OPTIONS}, produces = "application/json")
public ResponseEntity<?> getMethod()
{
谢谢你的帮忙!
3条答案
按热度按时间nnt7mjpx1#
你需要给
@CrossOrigin
注解的origins
参数传递一个字符串数组,这是用大括号完成的:然后在Spring中,源代码/main/resources/application.properties:
注意,不要在application.properties中的键值对右边包含注解或多余的空格,值后面多余的空格可能会导致键值对读取错误。
k97glaaz2#
可以尝试直接在origins参数中访问该属性
bsxbgnwa3#
它解决了问题
首先,您需要设置www.example.com文件中的属性application.properties,例如
其次..从控制器文件访问属性,如