沈陽建設(shè)企業(yè)網(wǎng)站如何做好網(wǎng)絡(luò)營銷
【Spring Boot 3】【W(wǎng)eb】處理跨域資源共享 CORS
- 背景
- 介紹
- 開發(fā)環(huán)境
- 開發(fā)步驟及源碼
- 工程目錄結(jié)構(gòu)
- 總結(jié)
背景
軟件開發(fā)是一門實踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時間精力。因此本文旨在通過一篇文章即能還原出可工作的、甚至可用于生產(chǎn)的DEMO,期望初學(xué)者能盡快地邁過0到1的這一步驟,并在此基礎(chǔ)上不斷深化對相關(guān)知識的理解。
為達(dá)以上目的,本文會將開發(fā)環(huán)境、工程目錄結(jié)構(gòu)、開發(fā)步驟及源碼盡量全面地展現(xiàn)出來,文字描述能簡則簡,能用代碼注釋的絕不在正文中再啰嗦一遍,正文僅對必要且關(guān)鍵的信息做重點描述。
介紹
本文介紹開發(fā) Spring Boot Web 應(yīng)用時如何處理跨域資源共享(CORS)。
跨域資源共享(CORS,Cross-Origin Resource Sharing),是一種基于 HTTP 頭的機制,允許服務(wù)器標(biāo)識除了自己以外的其他源(域、協(xié)議或端口),使得瀏覽器允許這些源訪問加載自己的資源。
Spring 提供五種方法解決跨域問題:
- 使用
@CrossOrigin
注解 Controller 類或方法 - 配置
CorsFilter
- 創(chuàng)建實現(xiàn)
WebMvcConfigurer
接口的配置類,重寫其addCorsMappings
方法 - 自定義
Filter
- 設(shè)置
HttpServletResponse
開發(fā)環(huán)境
分類 | 名稱 | 版本 |
---|---|---|
操作系統(tǒng) | Windows | Windows 11 |
JDK | Oracle JDK | 21.0.1 |
IDE | IntelliJ IDEA | 2023.3.7 |
構(gòu)建工具 | Apache Maven | 3.9.9 |
開發(fā)步驟及源碼
1> 創(chuàng)建Maven工程,添加依賴。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jiyongliang</groupId><artifactId>springboot3-web</artifactId><version>0.0.1</version></parent><artifactId>springboot3-web-cors</artifactId><properties><java.version>21</java.version><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-boot.version>3.3.3</spring-boot.version><lombok.version>1.18.34</lombok.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boo