gpt4 book ai didi

spring - 在Spring Boot中使用@CrossOrigin

转载 作者:行者123 更新时间:2023-12-02 06:43:19 24 4
gpt4 key购买 nike

我正在使用最新的 Spring Boot (1.2.7.RELEASE)。我想使用@CrossOrigin来自包 org.springframework.web.bind.annotation 的注释,如 CORS Support 中所述Spring 文档中的部分。

我认为我已经拥有所有必要的依赖项(通过 Spring Boot 默认值),但这很令人困惑:找不到 CrossOrigin ,即使像 RestController 这样的东西来自同一个包的作品!

enter image description here

Error:(8, 47) java: cannot find symbol
symbol: class CrossOrigin
location: package org.springframework.web.bind.annotation

发生什么事了? CrossOrigin 是否已从 Spring-MVC 的更高版本中删除,或者我是否缺少某些依赖项?

pom.xml:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.7.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

最佳答案

好吧,看起来最新的 Spring Boot 版本 1.2.7.RELEASE 目前太旧了,无法使用带有 CrossOrigin 的 Spring MVC 版本。 (Spring Boot 1.2.7 uses Spring version 4.1.8)。

我更新到最新的 Spring Boot 1.3 候选版本 (1.3.0.RC1) 并且它可以工作:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.RC1</version>
</parent>

还需要在 pom.xml 中指定 spring-milestones 存储库才能使用非发布版本。

<repositories>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>

更新:覆盖 Spring 版本

正如 Stéphane Nicoll 所指出的,使用 Spring 4.2.2 类(例如 CrossOrigin)的一种更简单的方法是:

<properties> 
<!-- ... -->
<spring.version>4.2.2.RELEASE</spring.version>
</properties>

关于spring - 在Spring Boot中使用@CrossOrigin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33258744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com