亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
##建立公共介面模組" >dubbo整合nacos案例##建立公共介面模組
dubbo整合nacos案例" >dubbo整合nacos案例
創(chuàng)建公共接口模塊" >創(chuàng)建公共接口模塊
創(chuàng)建服務(wù)提供者模塊" >創(chuàng)建服務(wù)提供者模塊
創(chuàng)建服務(wù)消費(fèi)者模塊" >創(chuàng)建服務(wù)消費(fèi)者模塊
首頁 Java java教程 SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

Aug 15, 2023 pm 04:49 PM
nacos dubbo springboot

本文來寫個(gè)詳細(xì)的例子來說下dubbo nacos Spring Boot開發(fā)實(shí)戰(zhàn)。本文不會(huì)講述太多的理論的知識(shí),會(huì)寫一個(gè)最簡(jiǎn)單的例子來說明dubbo如何與nacos整合,快速建構(gòu)開發(fā)環(huán)境。

文章目錄

  • 環(huán)境準(zhǔn)備
    • dubbo簡(jiǎn)介
    • Nacos環(huán)境準(zhǔn)備
    • Nacos與dubbo整合
  • ##專案管理規(guī)格

dubbo整合nacos案例##建立公共介面模組

建立服務(wù)提供者模組建立服務(wù)消費(fèi)者模組

##服務(wù)呼叫測(cè)試
SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

#本文小結(jié)###############環(huán)境準(zhǔn)備########################################## ####dubbo簡(jiǎn)介###############dubbo核心節(jié)點(diǎn)之間的呼叫關(guān)係##############節(jié)點(diǎn)說明###
SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

呼叫關(guān)係說明

  • #服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。
  • 服務(wù)提供者在啟動(dòng)時(shí),向註冊(cè)中心註冊(cè)自己提供的服務(wù)。
  • 服務(wù)消費(fèi)者在啟動(dòng)時(shí),向註冊(cè)中心訂閱自己所需的服務(wù)。
  • 註冊(cè)中心傳回服務(wù)提供者位址清單給消費(fèi)者,如果有變更,註冊(cè)中心將基於長(zhǎng)連線推送變更資料給消費(fèi)者。
  • 服務(wù)消費(fèi)者,從提供者位址清單中,基於軟負(fù)載平衡演算法,選一臺(tái)提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺(tái)調(diào)用。
  • 服務(wù)消費(fèi)者和提供者,在記憶體中累積呼叫次數(shù)和呼叫時(shí)間,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)資料到監(jiān)控中心。

Nacos環(huán)境準(zhǔn)備

#啟動(dòng)nacos,本文使用的是nacos1 .4.3版本

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

開啟nacos的控制面板

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

Nacos與dubbo整合

為了方便大家理解,這裡寫出對(duì)應(yīng)的生產(chǎn)方、消費(fèi)方Demo 代碼,以及使用的註冊(cè)中心。

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

專案管理規(guī)格

#springboot,netflix和cloud alibaba之間有版本之間的對(duì)應(yīng)關(guān)係,本文所選的版本如下

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

dubbo和cloud alibaba之間有版本之間的對(duì)應(yīng)關(guān)係,本文選擇的版本如下

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

為了後續(xù)方便使用SpringCloud Alibaba進(jìn)行開發(fā),首先建立一個(gè)pom類型的父項(xiàng)目,主要用於專案技術(shù)堆疊版本管理,建立一個(gè)maven項(xiàng)目,名稱為spring-cloud-alibaba-example,去除src文件,修改pom文件

<?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>

    <groupId>ah.wideth</groupId>
    <artifactId>spring-cloud-alibaba-example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <packaging>pom</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
        <com-alibaba-cloud.version>2.2.7.RELEASE</com-alibaba-cloud.version>
    </properties>

    <!--對(duì)項(xiàng)目版本進(jìn)行管理-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${com-alibaba-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

後續(xù)創(chuàng)建的項(xiàng)目都放到此目錄下,只需要聲明groupId和artifactId,會(huì)自動(dòng)引用父項(xiàng)目spring-cloud-alibaba-example的版本。與其說是父項(xiàng)目,不如說是根項(xiàng)目: 因?yàn)橄旅婷繉W(xué)習(xí)一個(gè)新的技術(shù),就會(huì)新建一個(gè)真正的父項(xiàng)目,而在對(duì)應(yīng)的父項(xiàng)目下面又會(huì)創(chuàng)建許多的子項(xiàng)目

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

dubbo整合nacos案例

本文的案例是在上文nacos開發(fā)實(shí)例的基礎(chǔ)之上繼續(xù)編寫的。下面開始建立我們的項(xiàng)目,貼上我的目錄結(jié)構(gòu)。

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

模組說明

  • public-api公共接口模塊(接口),供服務(wù)消費(fèi)者和服務(wù)提供者調(diào)用。
  • dubbo-provider服務(wù)提供者模塊(接口實(shí)現(xiàn)類),引入了public-api模塊
  • dubbo-consumer服務(wù)消費(fèi)者模塊(controller),引入了public-api模塊
  • 消費(fèi)者和提供者通過公共接口模塊進(jìn)行rpc遠(yuǎn)程調(diào)用

父工程pom文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>spring-cloud-alibaba-example</artifactId>
        <groupId>ah.wideth</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modules>
        <module>public-api</module>
        <module>dubbo-provider</module>
        <module>dubbo-consumer</module>
    </modules>

    <artifactId>dubbo-nacos-example</artifactId>
    <name>dubbo-nacos-example</name>
    <description>duboo與nacos整合的父工程</description>
    <packaging>pom</packaging>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <dubbo.version>2.7.13</dubbo.version>
        <nacos.version>1.4.1</nacos.version>
    </properties>


    <dependencies>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <!--解決nacos-client2.0報(bào)錯(cuò)的問題-->
            <exclusions>
                <exclusion>
                    <artifactId>nacos-client</artifactId>
                    <groupId>com.alibaba.nacos</groupId>
                </exclusion>
            </exclusions>
        </dependency>


        <!--dubbo相關(guān)-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>${dubbo.version}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>${nacos.version}</version>
        </dependency>

        <!-- 解決dubbo2.7.13jar包沖突問題-->
        <dependency>
            <groupId>com.alibaba.spring</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>1.0.11</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>${dubbo.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        
    </dependencies>

</project>
SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

創(chuàng)建公共接口模塊

pom文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>dubbo-nacos-example</artifactId>
        <groupId>ah.wideth</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>public-api</artifactId>
    <name>public-api</name>
    <description>api公用接口</description>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

公共接口模塊里面只有一個(gè)接口,沒有配置文件,打jar包

package ah.wideth.api;

/**
 * 讓生產(chǎn)者和服務(wù)消
 * 費(fèi)者來使用這個(gè)接口
 */
public interface InfoService {

    String getInfo();
}
SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

創(chuàng)建服務(wù)提供者模塊

pom文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>dubbo-nacos-example</artifactId>
        <groupId>ah.wideth</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>dubbo-provider</artifactId>
    <name>dubbo-provider</name>
    <description>dubbo的服務(wù)提供者模塊</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--引入公共接口模塊-->
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>public-api</artifactId>
            <version>${project.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

application.yml配置文件

server:
  port: 8180

spring:
  application:
    name: dubbo-provider

dubbo:
  registry:
    address: nacos://127.0.0.1:8848 #注冊(cè)地址
  application:
    name: dubbo-provider #應(yīng)用名
  protocol:
    name: dubbo #dubbo協(xié)議
    port: 20880 #協(xié)議端口
  scan:
    base-packages: ah.wideth.impl #掃包范圍
  provider:
    timeout: 30000 #超時(shí)時(shí)間

接口實(shí)現(xiàn)類,該類實(shí)現(xiàn)了上面我們?cè)诠步涌谀K創(chuàng)建的接口

package ah.wideth.impl;

import ah.wideth.api.InfoService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Component;


// dubbo提供的Service注解,用于聲明對(duì)外暴露服務(wù)
// Service引入的是org.apache.dubbo.config.annotation.Service包
@Component
@DubboService
public class InfoServiceImpl implements InfoService {

    @Override
    public String getInfo() {

        return "hello,這里是dubbo-provider模塊!";
    }
}

服務(wù)提供者啟動(dòng)類

package ah.wideth;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


@EnableDubbo
@EnableDiscoveryClient
@SpringBootApplication
public class DubboProviderApplication {

    public static void main(String[] args) {

        SpringApplication.run(DubboProviderApplication.class, args);
        System.out.println("dubbo服務(wù)提供者8180啟動(dòng)了");
    }

}

創(chuàng)建服務(wù)消費(fèi)者模塊

pom文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>dubbo-nacos-example</artifactId>
        <groupId>ah.wideth</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>dubbo-consumer</artifactId>
    <name>dubbo-consumer</name>
    <description>dubbo的服務(wù)消費(fèi)者模塊</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--引入公共接口模塊-->
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>public-api</artifactId>
            <version>${project.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

    </build>
</project>

application.yml配置文件

server:
  port: 8181

spring:
  application:
    name: dubbo-consumer

dubbo:
  registry:
    address: nacos://127.0.0.1:8848 #注冊(cè)地址
  application:
    name: dubbo-consumer #應(yīng)用名
  consumer:
    timeout: 30000 #超時(shí)時(shí)間

controller,調(diào)用公共接口模塊創(chuàng)建的接口

package ah.wideth.controller;

import ah.wideth.api.InfoService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class InfoController {

    //dumbo提供的Reference注解,用于調(diào)用遠(yuǎn)程服務(wù)
    @DubboReference(check = false)
    private InfoService infoService;

    @GetMapping("/getInfo")
    public String getInfo(){

        return infoService.getInfo();
    }
}

服務(wù)消費(fèi)者啟動(dòng)類

package ah.wideth;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


@EnableDubbo
@EnableDiscoveryClient
@SpringBootApplication
public class DubboConsumerApplication {

    public static void main(String[] args) {

        SpringApplication.run(DubboConsumerApplication.class, args);
        System.out.println("dubbo服務(wù)消費(fèi)者8181啟動(dòng)了");
    }

}

服務(wù)調(diào)用測(cè)試

打開Nacos控制面板查看注冊(cè)中心中的服務(wù)

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

啟動(dòng)nacos,啟動(dòng)服務(wù)提供者和服務(wù)消費(fèi)者,調(diào)用服務(wù)消費(fèi)者的getInfo方法,服務(wù)提供者會(huì)返回結(jié)果

SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程

本文小結(jié)

本文編寫了一個(gè)例子來對(duì)dubbo整合nacos進(jìn)行服務(wù)調(diào)用的例子,不過要注意jar包的沖突問題。

以上是SpringBoot+Dubbo+Nacos 開發(fā)實(shí)戰(zhàn)教程的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
Springboot怎麼整合Jasypt實(shí)現(xiàn)設(shè)定檔加密 Springboot怎麼整合Jasypt實(shí)現(xiàn)設(shè)定檔加密 Jun 01, 2023 am 08:55 AM

Jasypt介紹Jasypt是一個(gè)java庫,它允許開發(fā)員以最少的努力為他/她的專案添加基本的加密功能,並且不需要對(duì)加密工作原理有深入的了解用於單向和雙向加密的高安全性、基於標(biāo)準(zhǔn)的加密技術(shù)。加密密碼,文本,數(shù)字,二進(jìn)位檔案...適合整合到基於Spring的應(yīng)用程式中,開放API,用於任何JCE提供者...添加如下依賴:com.github.ulisesbocchiojasypt-spring-boot-starter2. 1.1Jasypt好處保護(hù)我們的系統(tǒng)安全,即使程式碼洩露,也可以保證資料來源的

怎麼在SpringBoot中使用Redis實(shí)現(xiàn)分散式鎖 怎麼在SpringBoot中使用Redis實(shí)現(xiàn)分散式鎖 Jun 03, 2023 am 08:16 AM

一、Redis實(shí)現(xiàn)分散式鎖原理為什麼需要分散式鎖在聊分散式鎖之前,有必要先解釋一下,為什麼需要分散式鎖。與分散式鎖相對(duì)就的是單機(jī)鎖,我們?cè)趯懚鄨?zhí)行緒程式時(shí),避免同時(shí)操作一個(gè)共享變數(shù)產(chǎn)生資料問題,通常會(huì)使用一把鎖來互斥以保證共享變數(shù)的正確性,其使用範(fàn)圍是在同一個(gè)進(jìn)程中。如果換做是多個(gè)進(jìn)程,需要同時(shí)操作一個(gè)共享資源,如何互斥?現(xiàn)在的業(yè)務(wù)應(yīng)用通常是微服務(wù)架構(gòu),這也意味著一個(gè)應(yīng)用會(huì)部署多個(gè)進(jìn)程,多個(gè)進(jìn)程如果需要修改MySQL中的同一行記錄,為了避免操作亂序?qū)е麦v數(shù)據(jù),此時(shí)就需要引入分佈式鎖了。想要實(shí)現(xiàn)分

SpringBoot怎麼自訂Redis實(shí)作快取序列化 SpringBoot怎麼自訂Redis實(shí)作快取序列化 Jun 03, 2023 am 11:32 AM

1.自訂RedisTemplate1.1、RedisAPI預(yù)設(shè)序列化機(jī)制基於API的Redis快取實(shí)作是使用RedisTemplate範(fàn)本進(jìn)行資料快取操作的,這裡開啟RedisTemplate類,查看該類別的源碼資訊publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations,BeanClassLoaderAware{//聲明了value的各種序列化方式,初始值為空@NullableprivateRedisSe

springboot讀取檔案打成jar包後存取不到怎麼解決 springboot讀取檔案打成jar包後存取不到怎麼解決 Jun 03, 2023 pm 04:38 PM

springboot讀取文件,打成jar包後訪問不到最新開發(fā)出現(xiàn)一種情況,springboot打成jar包後讀取不到文件,原因是打包之後,文件的虛擬路徑是無效的,只能通過流去讀取。文件在resources下publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表新增怎麼實(shí)現(xiàn) Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表新增怎麼實(shí)現(xiàn) Jun 02, 2023 am 11:07 AM

在Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加操作我所遇到的問題準(zhǔn)備工作在測(cè)試環(huán)境下模擬思維分解一下:創(chuàng)建出一個(gè)帶有參數(shù)的BrandDTO對(duì)像模擬對(duì)後臺(tái)傳遞參數(shù)我所遇到的問題我們都知道,在我們使用Mybatis-plus中進(jìn)行多表操作是極其困難的,如果你不使用Mybatis-plus-join這一類的工具,你只能去配置對(duì)應(yīng)的Mapper.xml文件,配置又臭又長(zhǎng)的ResultMap,然後再寫對(duì)應(yīng)的sql語句,這種方法雖然看上去很麻煩,但具有很高的靈活性,可以讓我們

SpringBoot與SpringMVC的比較及差別分析 SpringBoot與SpringMVC的比較及差別分析 Dec 29, 2023 am 11:02 AM

SpringBoot和SpringMVC都是Java開發(fā)中常用的框架,但它們之間有一些明顯的差異。本文將探究這兩個(gè)框架的特點(diǎn)和用途,並對(duì)它們的差異進(jìn)行比較。首先,我們來了解一下SpringBoot。 SpringBoot是由Pivotal團(tuán)隊(duì)開發(fā)的,它旨在簡(jiǎn)化基於Spring框架的應(yīng)用程式的建立和部署。它提供了一種快速、輕量級(jí)的方式來建立獨(dú)立的、可執(zhí)行

SpringBoot中的@Import註解怎麼使用 SpringBoot中的@Import註解怎麼使用 May 31, 2023 pm 06:25 PM

一、@Import引入普通類別@Import引入普通的類別可以幫助我們把普通的類別定義為Bean。 @Import可以加入在@SpringBootApplication(啟動(dòng)類別)、@Configuration(配置類別)、@Component(組件類別)對(duì)應(yīng)的類別上。注意:@RestController、@Service、@Repository都屬於@Component@SpringBootApplication@Import(ImportBean.class)//透過@Import註解把ImportBean

springboot怎麼取得application.yml裡值 springboot怎麼取得application.yml裡值 Jun 03, 2023 pm 06:43 PM

在專案中,很多時(shí)候需要用到一些配置信息,這些信息在測(cè)試環(huán)境和生產(chǎn)環(huán)境下可能會(huì)有不同的配置,後面根據(jù)實(shí)際業(yè)務(wù)情況有可能還需要再做修改。我們不能將這些設(shè)定在程式碼中寫死,最好是寫到設(shè)定檔中,例如可以把這些資訊寫到application.yml檔案中。那麼,怎麼在程式碼裡取得或使用這個(gè)位址呢?有2個(gè)方法。方法一:我們可以透過@Value註解的${key}即可取得設(shè)定檔(application.yml)中和key對(duì)應(yīng)的value值,這個(gè)方法適用於微服務(wù)比較少的情形方法二:在實(shí)際專案中,遇到業(yè)務(wù)繁瑣,邏

See all articles