欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

將Springboot項(xiàng)目升級成Springcloud項(xiàng)目的圖文教程

 更新時(shí)間:2023年06月25日 10:41:33   作者:君故于時(shí)  
本文主要介紹了將Springboot項(xiàng)目升級成Springcloud項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文以nacos為例

分為以下幾個(gè)步驟

  • 1. 下載nacos軟件
  • 2. pom文件配置
  • 3. application.yml文件配置
  • 4. 代碼調(diào)用
  • 5. 效果展示

一 . 下載nacos軟件

1.1 下載nacos-server-2.2.0-BETA這個(gè)版本

1.2 修改nacos配置文件

打開bin目錄下的startup.cmd,將第26行的

set MODE=“cluster”
改為:
set MODE=“standalone”

1.3 雙擊startup.cmd

如下圖則表示啟動成功

二. 項(xiàng)目中引入jar,配置文件pom.xml

Springboot升級為Springcloud版本一定要對應(yīng),不然就會有很多稀奇古怪的錯(cuò)誤

本文是將2.7.5的Springboot升級為2021.0.7的Springcloud如圖:

以下是幾個(gè)關(guān)鍵的配置:

完整的pom.xml配置文件

<?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>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>cstudents</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>students</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <!--<spring-cloud-alibaba-version>2.2.5.RELEASE</spring-cloud-alibaba-version>-->
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
           <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
               <version>2021.0.5.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!-- 依賴   -->
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>jsr305</artifactId>
                    <groupId>com.google.code.findbugs</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>HdrHistogram</artifactId>
                    <groupId>org.hdrhistogram</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--啟動-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--測試-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--thymeleaf-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--加載JPA-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!--Mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.1</version>
        </dependency>
        <!--阿里云-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.15</version>
        </dependency>
        <!--連接mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        <!--分頁的插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.5</version>
        </dependency>
        <!-- 逆向工程依賴-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <!--Mybatis-->
        <!--<dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.1</version>
        </dependency>-->
        <!--devtools熱部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
       <!-- <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>-->
    </dependencies>
    <!--<pluginRepositories>
        <pluginRepository>
            <id>alimaven spring plugin</id>
            <name>alimaven spring plugin</name>
            <url>https://maven.aliyun.com/repository/spring-plugin</url>
        </pluginRepository>
    </pluginRepositories>-->
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>repository.springframework.maven.release</id>
            <name>Spring Framework Maven Release Repository</name>
            <url>http://maven.springframework.org/milestone/</url>
        </repository>
        <repository>
            <id>org.springframework</id>
            <url> http://maven.springframework.org/snapshot</url>
        </repository>
        <repository>
            <id>spring-milestone</id>
            <name>Spring Maven MILESTONE Repository</name>
            <url>http://repo.spring.io/libs-milestone</url>
        </repository>
        <repository>
            <id>spring-release</id>
            <name>Spring Maven RELEASE Repository</name>
            <url>http://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
    <build>
        <plugins>
            <!--<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.1</version>
            </plugin>-->
            <!-- 逆向工程插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <configurationFile>GeneratorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

在升級為Springcloud時(shí),有些jar會有沖突,本文pom.xml文件中注釋掉的就是沖突的jar,但是讀者得根據(jù)自己的實(shí)際情況進(jìn)行增刪沖突jar,不過一般就是文中的這幾個(gè)

三. application.yml文件配置

server:
  port: 9080
spring:
  application:
    name: consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

注意事項(xiàng):

四. 代碼調(diào)用:

項(xiàng)目說明,項(xiàng)目有一個(gè)消費(fèi)者(調(diào)用方),和兩個(gè)生產(chǎn)者(被調(diào)用方)

4.1 生產(chǎn)者

生產(chǎn)者代碼解析:

代碼:

生產(chǎn)者application.yml:

server:
  port: 8081
spring:
  application:
    name: provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

生產(chǎn)者調(diào)用代碼:

本代碼中設(shè)置了三種情況:消費(fèi)者調(diào)用時(shí)傳輸一個(gè)參數(shù),兩個(gè)參數(shù),一個(gè)集合的三種情況:

package com.example.test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
@Controller
@RefreshScope
public class PrivodeController {
    @Value("${server.port}")
    String port;
    //傳輸一個(gè)參數(shù)
    @GetMapping("/hi")
    @ResponseBody
    public String hi(@RequestParam(value = "name", defaultValue = "forezp",required = false) String name) {
        System.out.println("666");
        String msg = "I receive msg 【" + name + "】" + ", i'm provider ,my port:" + port;
        System.out.println(msg);
        return msg;
    }
    //傳輸多個(gè)參數(shù)
    @GetMapping("/send")
    @ResponseBody
    public String send1(@RequestParam(value = "city", defaultValue = "Shanghai",required = false) String city,
                       @RequestParam(value = "site", defaultValue = "School",required = false) String site) {
        System.out.println("666");
        String msg = "My favorite city is " + city+ " , I want to go to " + site;
        System.out.println(msg);
        return msg;
    }
    //傳輸Map
    @GetMapping("/send2")
    @ResponseBody
    public String send2(@RequestParam Map data) {
        System.out.println("666");
        String msg = "My name is " + data.get("name")+ " , I am " + data.get("age") + " years old.";
        System.out.println(msg);
        return msg;
    }
}

生產(chǎn)者啟動類:

package com.example;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RestController;
@MapperScan("com.example.mapper")
@SpringBootApplication
@RestController
@EnableDiscoveryClient
public class StudentsApplication {
    public static void main(String[] args) {
        SpringApplication.run(StudentsApplication.class, args);
    }
}

4.2 消費(fèi)者

消費(fèi)者代碼解析:

消費(fèi)者代碼:

消費(fèi)者application.yml

server:
  port: 9080
spring:
  application:
    name: consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

消費(fèi)者接口:

package com.example.test;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
@FeignClient(value = "provider" )
@RefreshScope
public interface ProviderClient {
    @GetMapping("/hi")
    String hi(@RequestParam(value = "name", defaultValue = "hello", required = false) String name);
    @GetMapping("/send1")
    String send1(@RequestParam(value = "city", defaultValue = "Shanghai", required = false) String city,
                @RequestParam(value = "site", defaultValue = "School", required = false) String site);
    @GetMapping("/send2")
    String send2(@RequestParam  Map data);
}

消費(fèi)者實(shí)現(xiàn)類:

package com.example.test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
@Controller
public class ConsumerController {
    @Autowired
    ProviderClient providerClient;
    //傳輸一個(gè)參數(shù)
    @GetMapping("/canos")
    @ResponseBody
    public String hiFeign(){
        System.out.println("哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈");
        return providerClient.hi("你好,我這邊發(fā)出了信息。。。。。");
    }
    //傳輸多個(gè)參數(shù)
    @GetMapping("/test")
    @ResponseBody
    public String hiNacos(){
        System.out.println("666");
        return providerClient.send1("Beijing","Tiananmen");
    }
    //傳輸Map
    @GetMapping("/test2")
    @ResponseBody
    public String hiNacos2(){
        System.out.println("777");
        Map<String,String> data = new HashMap<String,String>();
        data.put("name","Jack");
        data.put("age","18");
        return providerClient.send2(data);
    }
}

五. 效果展示:

雙擊啟動nacos:

登錄nocas:

用戶名和密碼默認(rèn)是:nacos

啟動一個(gè)消費(fèi)者CStudents_C、兩個(gè)生產(chǎn)者CStudents_P1、CStudents_P2

觀察naocs控制面板:

可以對服務(wù)進(jìn)行上線下線或者分配權(quán)重:

調(diào)用效果展示:

 到此這篇關(guān)于將Springboot項(xiàng)目升級成Springcloud項(xiàng)目的圖文教程的文章就介紹到這了,更多相關(guān)Springboot升級成Springcloud內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven介紹與配置+IDEA集成Maven+使用Maven命令小結(jié)

    Maven介紹與配置+IDEA集成Maven+使用Maven命令小結(jié)

    Maven是Apache軟件基金會的一個(gè)開源項(xiàng)目,是一個(gè)優(yōu)秀的項(xiàng)目構(gòu)建管理工具,它用來幫助開發(fā)者管理項(xiàng)目中的 jar,以及 jar 之間的依賴關(guān)系、完成項(xiàng)目的編譯、測試、打包和發(fā)布等工作,本文給大家介紹Maven介紹與配置+IDEA集成Maven+使用Maven命令,感興趣的朋友一起看看吧
    2024-01-01
  • springboot整合nacos的入門Demo及Nacos安裝部署

    springboot整合nacos的入門Demo及Nacos安裝部署

    Nacos?提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理,Nacos?致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù),這篇文章主要介紹了springboot整合nacos的入門Demo,需要的朋友可以參考下
    2024-01-01
  • Java去掉數(shù)字字符串開頭的0三種方法(推薦)

    Java去掉數(shù)字字符串開頭的0三種方法(推薦)

    下面小編就為大家?guī)硪黄狫ava去掉數(shù)字字符串開頭的0三種方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • MyBatis異常-Property ''configLocation'' not specified, using default MyBatis Configuration

    MyBatis異常-Property ''configLocation'' not specified, using d

    今天小編就為大家分享一篇關(guān)于MyBatis異常-Property 'configLocation' not specified, using default MyBatis Configuration,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • pagehelper踩坑記之分頁亂套問題解決

    pagehelper踩坑記之分頁亂套問題解決

    這篇文章主要為大家介紹了pagehelper踩坑記之分頁亂套問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Quarkus云原生開篇java框架簡介

    Quarkus云原生開篇java框架簡介

    Quarkus?是小紅帽開源的專門針對云容器環(huán)境優(yōu)化的云原生java框架,博主接下來的項(xiàng)目估計(jì)都會使用這個(gè)框架來開發(fā),相關(guān)的問題都會記錄在這個(gè)系列,本文是個(gè)開篇
    2022-02-02
  • Mybatis-plus通過添加攔截器實(shí)現(xiàn)簡單數(shù)據(jù)權(quán)限

    Mybatis-plus通過添加攔截器實(shí)現(xiàn)簡單數(shù)據(jù)權(quán)限

    系統(tǒng)需要根據(jù)用戶所屬的公司,來做一下數(shù)據(jù)權(quán)限控制,具體一點(diǎn),就是通過表中的company_id進(jìn)行權(quán)限控制,項(xiàng)目使用的是mybatis-plus,所以通過添加攔截器的方式,修改查詢sql,實(shí)現(xiàn)數(shù)據(jù)權(quán)限,本文就通過代碼給大家詳細(xì)的講解一下,需要的朋友可以參考下
    2023-08-08
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(29)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(29)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • JAVA如何獲取jvm和操作系統(tǒng)相關(guān)信息

    JAVA如何獲取jvm和操作系統(tǒng)相關(guān)信息

    這篇文章主要介紹了JAVA獲取jvm和操作系統(tǒng)相關(guān)信息,使用Java自帶的類進(jìn)行獲取系統(tǒng)運(yùn)行的相關(guān)信息,在這整理記錄分享一下,需要的朋友可以參考下
    2022-10-10
  • SpringBoot使用Redisson實(shí)現(xiàn)分布式鎖(秒殺系統(tǒng))

    SpringBoot使用Redisson實(shí)現(xiàn)分布式鎖(秒殺系統(tǒng))

    這篇文章主要為大家詳細(xì)介紹了SpringBoot使用Redisson實(shí)現(xiàn)分布式鎖,秒殺系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論