亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot 整合 Java DL4J 實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)(推薦)

 更新時(shí)間:2024年10月17日 15:14:25   作者:月下獨(dú)碼  
本文詳細(xì)介紹了系統(tǒng)的搭建過(guò)程,包括技術(shù)選型、數(shù)據(jù)處理、模型訓(xùn)練和評(píng)估等關(guān)鍵步驟,系統(tǒng)采用卷積神經(jīng)網(wǎng)絡(luò),對(duì)水果成熟度和缺陷進(jìn)行識(shí)別,有效解決了傳統(tǒng)方法成本高、效率低的問(wèn)題,有助于提升農(nóng)產(chǎn)品檢測(cè)的科技含量和自動(dòng)化水平

Spring Boot 整合 Java Deeplearning4j 實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)

一、引言

農(nóng)產(chǎn)品質(zhì)量檢測(cè)至關(guān)重要,它直接關(guān)系到消費(fèi)者的健康和農(nóng)業(yè)產(chǎn)業(yè)的可持續(xù)發(fā)展。然而,傳統(tǒng)的農(nóng)產(chǎn)品質(zhì)量檢測(cè)方法存在諸多局限性。人工感官檢測(cè)雖然簡(jiǎn)單快速,但對(duì)檢測(cè)人員的經(jīng)驗(yàn)和技術(shù)要求較高,且主觀性強(qiáng),準(zhǔn)確性難以保證?;瘜W(xué)分析方法操作復(fù)雜,耗時(shí)費(fèi)力,而且需要專業(yè)的實(shí)驗(yàn)室設(shè)備和技術(shù)人員。儀器分析方法雖然能提供更準(zhǔn)確的質(zhì)量信息,但設(shè)備昂貴,維護(hù)成本高,不適合大規(guī)模的農(nóng)產(chǎn)品檢測(cè)。

隨著技術(shù)的不斷發(fā)展,圖像識(shí)別技術(shù)在農(nóng)產(chǎn)品質(zhì)量檢測(cè)中發(fā)揮著越來(lái)越重要的作用。本文將介紹如何使用 Spring Boot 整合 Java Deeplearning4j 構(gòu)建一個(gè)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng),以檢測(cè)水果的成熟度缺陷,提高農(nóng)產(chǎn)品質(zhì)量。

二、技術(shù)概述

  • Spring Boot:Spring Boot 是一個(gè)用于快速構(gòu)建獨(dú)立、生產(chǎn)級(jí)別的 Spring 應(yīng)用程序的框架。它簡(jiǎn)化了 Spring 應(yīng)用程序的開(kāi)發(fā),提供了自動(dòng)配置、起步依賴和內(nèi)置服務(wù)器等功能,使開(kāi)發(fā)人員能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。
  • Java Deeplearning4j:Deeplearning4j 是一個(gè)基于 Java 的深度學(xué)習(xí)庫(kù),支持多種深度學(xué)習(xí)算法和神經(jīng)網(wǎng)絡(luò)架構(gòu)。它提供了高效的數(shù)值計(jì)算和并行處理能力,適用于大規(guī)模數(shù)據(jù)的訓(xùn)練和推理。
  • 圖像識(shí)別技術(shù):圖像識(shí)別是指計(jì)算機(jī)對(duì)圖像中的目標(biāo)進(jìn)行檢測(cè)、分類和識(shí)別的技術(shù)。在農(nóng)產(chǎn)品質(zhì)量檢測(cè)中,圖像識(shí)別技術(shù)可以通過(guò)分析水果的外觀特征,如顏色、形狀、大小和紋理等,來(lái)判斷水果的成熟度和缺陷。

三、神經(jīng)網(wǎng)絡(luò)選擇

在本案例中,我們選擇使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)來(lái)實(shí)現(xiàn)水果的成熟度和缺陷檢測(cè)。選擇 CNN 的理由在于它在圖像識(shí)別任務(wù)中表現(xiàn)出色,通過(guò)卷積層和池化層的結(jié)構(gòu)能夠高效地從圖像中提取特征,如邊緣、紋理形狀等,非常適合處理農(nóng)產(chǎn)品圖像。

選擇卷積神經(jīng)網(wǎng)絡(luò)有以下幾個(gè)重要理由:

  • 強(qiáng)大的圖像特征提取能力:CNN 能夠自動(dòng)從圖像中提取豐富的特征,如邊緣、紋理、形狀等。對(duì)于農(nóng)產(chǎn)品質(zhì)量檢測(cè),這些特征對(duì)于判斷水果的成熟度和缺陷至關(guān)重要。例如,成熟的水果通常顏色更加鮮艷,紋理更加清晰,而有缺陷的水果可能會(huì)有破損的邊緣或者異常的顏色分布。CNN 可以通過(guò)卷積層和池化層的組合,有效地提取這些特征,從而提高檢測(cè)的準(zhǔn)確性。
  • 對(duì)水果質(zhì)量檢測(cè)的適用性:水果的質(zhì)量檢測(cè)主要依賴于對(duì)水果外觀特征的分析。CNN 非常適合處理圖像數(shù)據(jù),能夠準(zhǔn)確地識(shí)別水果的形狀、顏色、大小等特征,從而判斷水果的成熟度和是否有缺陷。此外,CNN 對(duì)圖像的平移、旋轉(zhuǎn)和縮放具有一定的不變性,這意味著即使水果的位置、角度或大小有所變化,CNN 仍然能夠準(zhǔn)確地進(jìn)行檢測(cè)。
  • 大量的成功案例和研究支持:在圖像識(shí)別領(lǐng)域,CNN 已經(jīng)取得了巨大的成功。許多研究和實(shí)際應(yīng)用都證明了 CNN 在物體識(shí)別、目標(biāo)檢測(cè)、圖像分割等任務(wù)中的有效性。在水果質(zhì)量檢測(cè)方面,也有許多研究使用 CNN 取得了良好的效果。例如,一些研究使用 CNN 對(duì)水果的成熟度進(jìn)行分類,準(zhǔn)確率高達(dá) 90% 以上。這些成功案例和研究支持為我們選擇 CNN 提供了有力的依據(jù)。
  • 可擴(kuò)展性和靈活性:CNN 可以根據(jù)不同的需求進(jìn)行擴(kuò)展和調(diào)整。我們可以通過(guò)增加卷積層和全連接層的數(shù)量來(lái)提高模型的復(fù)雜度和性能,也可以通過(guò)調(diào)整卷積核的大小和數(shù)量來(lái)適應(yīng)不同的圖像特征。此外,CNN 還可以與其他深度學(xué)習(xí)技術(shù)相結(jié)合,如循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、生成對(duì)抗網(wǎng)絡(luò)(GAN)等,以進(jìn)一步提高水果質(zhì)量檢測(cè)的準(zhǔn)確性和可靠性。

四、數(shù)據(jù)集格式

4.1 數(shù)據(jù)集來(lái)源

我們可以從互聯(lián)網(wǎng)上下載公開(kāi)的水果圖像數(shù)據(jù)集,也可以自己采集水果圖像數(shù)據(jù)。在采集數(shù)據(jù)時(shí),應(yīng)確保數(shù)據(jù)的多樣性和代表性,包括不同種類、不同成熟度和不同缺陷的水果圖像。

4.2 數(shù)據(jù)集格式

我們將收集包含正常和異常農(nóng)產(chǎn)品圖像的數(shù)據(jù)集。數(shù)據(jù)集中的每張圖像都將與相關(guān)的標(biāo)簽信息關(guān)聯(lián),如水果的成熟度、是否有缺陷等。目錄結(jié)構(gòu)可以采用分類存儲(chǔ)的方式,例如按照水果種類、成熟度等級(jí)等進(jìn)行分類存儲(chǔ)。

數(shù)據(jù)集通常以圖像文件的形式存儲(chǔ),每個(gè)圖像文件對(duì)應(yīng)一個(gè)水果樣本。圖像文件可以采用常見(jiàn)的圖像格式,如 JPEG、PNG 等。為了方便管理和使用數(shù)據(jù)集,我們可以將圖像文件按照不同的類別和標(biāo)簽進(jìn)行分類存儲(chǔ),例如,可以將成熟的水果圖像存儲(chǔ)在一個(gè)文件夾中,將有缺陷的水果圖像存儲(chǔ)在另一個(gè)文件夾中。

數(shù)據(jù)集中的圖像采用高分辨率格式,通常為 224x224 像素或更高,以確保能夠清晰地捕捉水果的細(xì)節(jié)特征。色彩模式采用 RGB 模式,能夠真實(shí)地反映水果的顏色信息。這樣的設(shè)置有助于卷積神經(jīng)網(wǎng)絡(luò)更好地提取圖像特征,提高水果質(zhì)量檢測(cè)的準(zhǔn)確性。

4.3 樣例表格

以下是一個(gè)簡(jiǎn)單的數(shù)據(jù)集樣例表格,展示了水果圖像的文件名、類別和標(biāo)簽:

文件名類別標(biāo)簽
apple1.jpg蘋果成熟
apple2.jpg蘋果有缺陷
banana1.jpg香蕉成熟
banana2.jpg香蕉未成熟

4.4 目錄結(jié)構(gòu)

以下是一個(gè)可能的數(shù)據(jù)集目錄結(jié)構(gòu):

dataset/
├── apples/
│   ├── mature/
│   │   ├── apple1.jpg
│   │   ├── apple2.jpg
│   │   └──...
│   └── defective/
│       ├── apple3.jpg
│       ├── apple4.jpg
│       └──...
├── bananas/
│   ├── mature/
│   │   ├── banana1.jpg
│   │   ├── banana2.jpg
│   │   └──...
│   └── unripe/
│       ├── banana3.jpg
│       ├── banana4.jpg
│       └──...
└──...

五、技術(shù)實(shí)現(xiàn)

5.1 Maven 依賴

在使用 Spring Boot 整合 Java Deeplearning4j 時(shí),需要在項(xiàng)目的 pom.xml 文件中添加以下 Maven 依賴:

<dependency>
    <groupId>org.deeplearning4j</groupId>
    <artifactId>deeplearning4j-core</artifactId>
    <version>1.0.0-M1.4</version>
</dependency>
<dependency>
    <groupId>org.deeplearning4j</groupId>
    <artifactId>deeplearning4j-nn</artifactId>
    <version>1.0.0-M1.4</version>
</dependency>
<dependency>
    <groupId>org.deeplearning4j</groupId>
    <artifactId>deeplearning4j-ui</artifactId>
    <version>1.0.0-M1.4</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

5.2 數(shù)據(jù)加載和預(yù)處理

首先,我們需要加載數(shù)據(jù)集并進(jìn)行預(yù)處理。可以使用 Deeplearning4j 的DataSetIterator接口來(lái)加載圖像數(shù)據(jù)集,并對(duì)圖像進(jìn)行歸一化和數(shù)據(jù)增強(qiáng)等預(yù)處理操作。以下是一個(gè)示例代碼:

import org.datavec.image.loader.NativeImageLoader;
import org.deeplearning4j.datasets.iterator.impl.ListDataSetIterator;
import org.nd4j.linalg.dataset.api.preprocessor.DataNormalization;
import org.nd4j.linalg.dataset.api.preprocessor.ImagePreProcessingScaler;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class DataLoader {
    public static ListDataSetIterator loadData(String dataDirectory) {
        NativeImageLoader imageLoader = new NativeImageLoader(28, 28, 3);
        List<File> imageFiles = new ArrayList<>();
        // 遍歷數(shù)據(jù)集目錄,收集圖像文件
        File[] directories = new File(dataDirectory).listFiles(File::isDirectory);
        for (File directory : directories) {
            File[] files = directory.listFiles();
            for (File file : files) {
                imageFiles.add(file);
            }
        }
        // 創(chuàng)建圖像數(shù)據(jù)集
        float[][] images = new float[imageFiles.size()][28 * 28 * 3];
        int[] labels = new int[imageFiles.size()];
        for (int i = 0; i < imageFiles.size(); i++) {
            File imageFile = imageFiles.get(i);
            String label = imageFile.getParentFile().getName();
            labels[i] = Integer.parseInt(label);
            float[] image = imageLoader.asMatrix(imageFile);
            images[i] = image;
        }
        // 數(shù)據(jù)歸一化
        DataNormalization scaler = new ImagePreProcessingScaler(0, 1);
        scaler.fit(images);
        scaler.transform(images);
        // 創(chuàng)建數(shù)據(jù)集迭代器
        return new ListDataSetIterator(images, labels, 10);
    }
}

5.3 模型構(gòu)建和訓(xùn)練

接下來(lái),我們需要構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行訓(xùn)練。可以使用 Deeplearning4j 的MultiLayerConfigurationMultiLayerNetwork類來(lái)構(gòu)建和訓(xùn)練模型。以下是一個(gè)示例代碼:

import org.deeplearning4j.nn.conf.MultiLayerConfiguration;
import org.deeplearning4j.nn.conf.NeuralNetConfiguration;
import org.deeplearning4j.nn.conf.layers.ConvolutionLayer;
import org.deeplearning4j.nn.conf.layers.DenseLayer;
import org.deeplearning4j.nn.conf.layers.OutputLayer;
import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
import org.deeplearning4j.nn.weights.WeightInit;
import org.nd4j.linalg.activations.Activation;
import org.nd4j.linalg.lossfunctions.LossFunctions;
public class FruitQualityDetector {
    public static MultiLayerNetwork buildModel() {
        MultiLayerConfiguration configuration = new NeuralNetConfiguration.Builder()
               .seed(123)
               .weightInit(WeightInit.XAVIER)
               .updater(org.deeplearning4j.nn.weights.WeightInit.XAVIER_UNIFORM)
               .list()
               .layer(0, new ConvolutionLayer.Builder(5, 5)
                       .nIn(3)
                       .stride(1, 1)
                       .nOut(16)
                       .activation(Activation.RELU)
                       .build())
               .layer(1, new ConvolutionLayer.Builder(3, 3)
                       .stride(1, 1)
                       .nOut(32)
                       .activation(Activation.RELU)
                       .build())
               .layer(2, new DenseLayer.Builder()
                       .nOut(512)
                       .activation(Activation.RELU)
                       .build())
               .layer(3, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)
                       .nOut(2)
                       .activation(Activation.SOFTMAX)
                       .build())
               .build();
        return new MultiLayerNetwork(configuration);
    }
    public static void trainModel(MultiLayerNetwork model, ListDataSetIterator iterator, int epochs) {
        model.init();
        for (int i = 0; i < epochs; i++) {
            model.fit(iterator);
            iterator.reset();
        }
    }
}

5.4 模型預(yù)測(cè)和評(píng)估

最后,我們可以使用訓(xùn)練好的模型對(duì)新的水果圖像進(jìn)行預(yù)測(cè),并評(píng)估模型的性能。以下是一個(gè)示例代碼:

import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
import org.deeplearning4j.eval.Evaluation;
import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.dataset.api.preprocessor.DataNormalization;
import org.nd4j.linalg.dataset.api.preprocessor.ImagePreProcessingScaler;
import org.datavec.image.loader.NativeImageLoader;
import java.io.File;
public class ModelEvaluator {
    public static void evaluateModel(MultiLayerNetwork model, String testDataDirectory) {
        NativeImageLoader imageLoader = new NativeImageLoader(28, 28, 3);
        File[] testFiles = new File(testDataDirectory).listFiles();
        float[][] testImages = new float[testFiles.length][28 * 28 * 3];
        int[] testLabels = new int[testFiles.length];
        for (int i = 0; i < testFiles.length; i++) {
            File testFile = testFiles[i];
            String label = testFile.getParentFile().getName();
            testLabels[i] = Integer.parseInt(label);
            float[] image = imageLoader.asMatrix(testFile);
            testImages[i] = image;
        }
        DataNormalization scaler = new ImagePreProcessingScaler(0, 1);
        scaler.fit(testImages);
        scaler.transform(testImages);
        Evaluation evaluation = model.evaluate(new ListDataSetIterator(testImages, testLabels, 10));
        System.out.println(evaluation.stats());
    }
}

六、單元測(cè)試

為了確保代碼的正確性和可靠性,我們可以編寫(xiě)單元測(cè)試來(lái)測(cè)試數(shù)據(jù)加載、模型構(gòu)建和訓(xùn)練、模型預(yù)測(cè)和評(píng)估等功能。以下是一個(gè)示例單元測(cè)試代碼:

import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
import org.deeplearning4j.datasets.iterator.impl.ListDataSetIterator;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class FruitQualityDetectorTest {
    private String dataDirectory;
    private MultiLayerNetwork model;
    private ListDataSetIterator iterator;
    @BeforeEach
    public void setUp() {
        dataDirectory = "path/to/dataset";
        iterator = DataLoader.loadData(dataDirectory);
        model = FruitQualityDetector.buildModel();
    }
    @Test
    public void testBuildModel() {
        assertEquals(4, model.getLayers().length);
    }
    @Test
    public void testTrainModel() {
        FruitQualityDetector.trainModel(model, iterator, 10);
        assertEquals(true, model.conf().getLayers()[0].getParam("W").isInitialized());
    }
    @Test
    public void testEvaluateModel() {
        String testDataDirectory = "path/to/test/dataset";
        ModelEvaluator.evaluateModel(model, testDataDirectory);
        // 可以根據(jù)具體的評(píng)估指標(biāo)進(jìn)行斷言
    }
}

七、預(yù)期輸出

  • 數(shù)據(jù)加載和預(yù)處理:成功加載數(shù)據(jù)集并進(jìn)行歸一化和數(shù)據(jù)增強(qiáng)等預(yù)處理操作,輸出數(shù)據(jù)集的大小和標(biāo)簽分布等信息。
  • 模型構(gòu)建和訓(xùn)練:成功構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行訓(xùn)練,輸出訓(xùn)練過(guò)程中的損失函數(shù)值和準(zhǔn)確率等信息。
  • 模型預(yù)測(cè)和評(píng)估:成功使用訓(xùn)練好的模型對(duì)新的水果圖像進(jìn)行預(yù)測(cè),并輸出模型的評(píng)估指標(biāo),如準(zhǔn)確率、召回率和 F1 值等。

八、參考資料文獻(xiàn)

Deeplearning4j 官方文檔

Spring Boot 官方文檔

卷積神經(jīng)網(wǎng)絡(luò)介紹

到此這篇關(guān)于Springboot 整合 Java DL4J 實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)的文章就介紹到這了,更多相關(guān)Springboot 農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis插件之自動(dòng)生成不使用默認(rèn)的駝峰式操作

    Mybatis插件之自動(dòng)生成不使用默認(rèn)的駝峰式操作

    這篇文章主要介紹了Mybatis插件之自動(dòng)生成不使用默認(rèn)的駝峰式操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • springboot常用注釋的講解

    springboot常用注釋的講解

    今天小編就為大家分享一篇關(guān)于springboot常用注釋的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • Eclipse運(yùn)行android項(xiàng)目報(bào)錯(cuò)Unable to build: the file dx.jar was not loaded from the SDK folder的解決辦法

    Eclipse運(yùn)行android項(xiàng)目報(bào)錯(cuò)Unable to build: the file dx.jar was not

    今天小編就為大家分享一篇關(guān)于Eclipse運(yùn)行android項(xiàng)目報(bào)錯(cuò)Unable to build: the file dx.jar was not loaded from the SDK folder的解決辦法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn)

    springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn)

    本文主要介紹了springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • java依賴混亂存在的問(wèn)題與解決方案

    java依賴混亂存在的問(wèn)題與解決方案

    這篇文章主要為大家介紹了java依賴混亂存在的問(wèn)題與解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 將Java對(duì)象序列化成JSON和XML格式的實(shí)例

    將Java對(duì)象序列化成JSON和XML格式的實(shí)例

    下面小編就為大家分享一篇將Java對(duì)象序列化成JSON和XML格式的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Java 鎖粗化與循環(huán)問(wèn)題

    Java 鎖粗化與循環(huán)問(wèn)題

    這篇文章主要介紹了Java 鎖粗化與循環(huán)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • 使用Java實(shí)現(xiàn)MapReduce詞頻統(tǒng)計(jì)示例代碼

    使用Java實(shí)現(xiàn)MapReduce詞頻統(tǒng)計(jì)示例代碼

    這篇文章主要介紹了使用Java實(shí)現(xiàn)MapReduce詞頻統(tǒng)計(jì)的相關(guān)資料,通過(guò)詞頻統(tǒng)計(jì)示例來(lái)展示MapReduce的運(yùn)行機(jī)制,涵蓋了Mapper和Reducer的實(shí)現(xiàn),并說(shuō)明了如何配置和執(zhí)行MapReduce作業(yè),需要的朋友可以參考下
    2024-11-11
  • Java 5個(gè)人坐在一起(有關(guān)第五個(gè)人歲數(shù)的問(wèn)題)

    Java 5個(gè)人坐在一起(有關(guān)第五個(gè)人歲數(shù)的問(wèn)題)

    利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推,需要的朋友可以參考下
    2017-02-02
  • 詳解Spring Cloud Gateway修改請(qǐng)求和響應(yīng)body的內(nèi)容

    詳解Spring Cloud Gateway修改請(qǐng)求和響應(yīng)body的內(nèi)容

    這篇文章主要介紹了Spring Cloud Gateway修改請(qǐng)求和響應(yīng)body的內(nèi)容的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論