最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot全局跨域配置實踐

 更新時間:2026年01月06日 08:41:50   作者:amadeus_liu2  
文章介紹了如何在Spring Boot中通過配置類配置全局跨域,避免在每個Controller上使用@CrossOrigin注解,適用于返回字符串或?qū)ο蟮慕涌?以及通過ResponseEntity提供文件下載的接口,但不適用于直接使用HttpServletResponse的接口

一、可以在配置類中通過配置一個@Bean

直接實現(xiàn)全局的跨域,不需要在每個controller上加@CrossOrigin注解了。

package cn.edu.tju.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration(proxyBeanMethods = false)
public class MyCorsConfig {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**");
            }
        };
    }


}

二、適用情況

1、返回字符串或?qū)ο蟮慕涌?/p>

    @RequestMapping("/getRate")
    public String getRate(){
        return "rate...";
    }

2.通過ResponseEntity提供文件下載功能的接口

    @RequestMapping(value="/get/csv")
    public ResponseEntity<byte[]> download(HttpServletRequest request)throws Exception{
        String content="first,second,third";
        ResponseEntity.BodyBuilder builder = ResponseEntity.ok();
        builder.contentLength(content.length());
        builder.contentType(MediaType.APPLICATION_OCTET_STREAM);
        String fileName = URLEncoder.encode("download.csv", "UTF-8");
        builder.header("Content-Disposition", "attachment; filename*=UTF-8''" + fileName);

        return builder.body(content.getBytes());
    }

三、不適用的情況

直接適用HttpServletResponse進行內(nèi)容返回的接口。需要將注釋的部分打開才能跨域

    @RequestMapping("/get/csv2")
    public void getCSV2(HttpServletResponse response) {

        String resultString="first,second,third";
        byte[] bytes = resultString.getBytes();
        response.reset();// 清空輸出流
        response.setContentType("application/x-download");
        response.setCharacterEncoding("UTF-8");
        response.addHeader("Content-Disposition", "attachment;filename=" + "test" + ".csv");

/*        response.addHeader("Access-Control-Allow-Origin", "*");
        response.addHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE");
        response.addHeader("Access-Control-Max-Age", "9600");
        response.addHeader("Access-Control-Allow-Headers", "x-requested-with");*/


        try {
            OutputStream os = response.getOutputStream();
            ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
            response.setHeader("Content-Length", String.valueOf(bais.available()));
            byte[] b = new byte[1024];
            while ((bais.read(b)) > 0) {
                os.write(b);
            }
            bais.close();
            os.flush();
            os.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合Keycloak的項目實踐

    SpringBoot整合Keycloak的項目實踐

    本文介紹了如何設(shè)置了Keycloak 服務(wù)器及在SpringBoot中使用 Spring Security OAuth2.0結(jié)合Keycloak實現(xiàn)認(rèn)證和授權(quán),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • kafka springBoot配置的實現(xiàn)

    kafka springBoot配置的實現(xiàn)

    本文主要介紹了kafka springBoot配置的實現(xiàn),通過詳細解析Spring Boot for Apache Kafka的配置選項,以及如何優(yōu)化Kafka生產(chǎn)者和消費者的屬性設(shè)置,感興趣的可以了解一下
    2023-11-11
  • ?Java圖形化界面編程實現(xiàn)簡單計算器

    ?Java圖形化界面編程實現(xiàn)簡單計算器

    這篇文章主要介紹了Java圖形化界面編程實現(xiàn)簡單計算器,下面文章圍繞Java圖形化界面編程實現(xiàn)簡單計算器的相關(guān)資料展開詳細內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-01-01
  • SpringBoot結(jié)合Redis實現(xiàn)緩存管理功能

    SpringBoot結(jié)合Redis實現(xiàn)緩存管理功能

    本篇文章主要介紹spring boot緩存管理機制及相關(guān)概念,以及如何結(jié)合Redis實現(xiàn)緩存管理,文中通過代碼示例給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-01-01
  • Java編程簡單應(yīng)用

    Java編程簡單應(yīng)用

    本文主要介紹了三個簡單Java小程序———1、HelloWorld(HelloWorld的來源);2、輸出個人信息3、輸出特殊圖案。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Java concurrency集合之ConcurrentLinkedQueue_動力節(jié)點Java學(xué)院整理

    Java concurrency集合之ConcurrentLinkedQueue_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了Java concurrency集合之ConcurrentLinkedQueue,需要的朋友可以參考下
    2017-06-06
  • Spring自動裝配之方法、構(gòu)造器位置的自動注入操作

    Spring自動裝配之方法、構(gòu)造器位置的自動注入操作

    這篇文章主要介紹了Spring自動裝配之方法、構(gòu)造器位置的自動注入操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring?Validation實現(xiàn)數(shù)據(jù)校驗的示例

    Spring?Validation實現(xiàn)數(shù)據(jù)校驗的示例

    Spring?Validation其實就是對Hibernate?Validator進一步的封裝,方便在Spring中使用,這篇文章主要介紹了Spring?Validation實現(xiàn)數(shù)據(jù)校驗的示例,需要的朋友可以參考下
    2023-03-03
  • 關(guān)于RequestMapping注解的作用說明

    關(guān)于RequestMapping注解的作用說明

    這篇文章主要介紹了關(guān)于RequestMapping注解的作用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • java中的過濾器 Filter應(yīng)用小結(jié)

    java中的過濾器 Filter應(yīng)用小結(jié)

    文章主要介紹了Java Web中的過濾器(Filter)的基本概念、生命周期、配置和應(yīng)用,過濾器可以攔截請求和響應(yīng),用于執(zhí)行一些預(yù)處理或后處理操作,如設(shè)置編碼、校驗用戶身份等,感興趣的朋友一起看看吧
    2025-03-03

最新評論

隆尧县| 仙桃市| 成武县| 嘉峪关市| 中山市| 巴林右旗| 神农架林区| 伊金霍洛旗| 遵义县| 中阳县| 元氏县| 尼玛县| 汉沽区| 甘谷县| 大兴区| 营山县| 德令哈市| 朝阳市| 新晃| 大方县| 横山县| 安陆市| 繁峙县| 阆中市| 林口县| 马关县| 德格县| 汝南县| 报价| 乌鲁木齐市| 六盘水市| 闽清县| 林周县| 四子王旗| 龙川县| 冷水江市| 莲花县| 镇远县| 石家庄市| 政和县| 天峨县|