六、soul源碼學(xué)習(xí)-SpringCloud項(xiàng)目本地運(yùn)行

一、本地部署Nacos

Nacos本地部署可以參考:http://www.iocoder.cn/Nacos/install/?self

二、搭建SpringCloud項(xiàng)目

示例代碼: https://github.com/wyc192273/soul-learn-project/tree/main/sofa-demo

  • 搭建了簡單的SpringCloud服務(wù)后,需要在項(xiàng)目中引入如下依賴:
<!-- 引入 Soul 針對 Spring Cloud 的集成的依賴 -->
        <dependency>
            <groupId>org.dromara</groupId>
            <artifactId>soul-spring-boot-starter-client-springcloud</artifactId>
            <version>${soul.version}</version>
        </dependency>
  • 修改application.yaml文件,添加如下配置
soul:
  springcloud:
    admin-url: http://localhost:9095
    context-path: /springcloud
    full: true
# adminUrl: 為你啟動的soul-admin 項(xiàng)目的ip + 端口,注意要加http://
# contextPath: 為你的這個(gè)mvc項(xiàng)目在soul網(wǎng)關(guān)的路由前綴,這個(gè)你應(yīng)該懂意思把? 比如/order ,/product 等等,網(wǎng)關(guān)會根據(jù)你的這個(gè)前綴來進(jìn)行路由.
# full: 設(shè)置true 代表代理你的整個(gè)服務(wù),false表示代理你其中某幾個(gè)controller
  • 在實(shí)現(xiàn)類上添加@SoulSpringCloudClient注解
@GetMapping("/get")
@SoulSpringCloudClient(path = "/user/get", desc = "獲得用戶詳細(xì)")
public String getUser(@RequestParam("id") Integer id) {
  return "DEMO:" + id;
}

二、網(wǎng)關(guān)接入SpringCloud

在網(wǎng)關(guān)項(xiàng)目中pom引入如下依賴:

                <!--soul springCloud plugin start-->
  <dependency>
       <groupId>org.dromara</groupId>
       <artifactId>soul-spring-boot-starter-plugin-springcloud</artifactId>
        <version>${last.version}</version>
  </dependency>

  <dependency>
       <groupId>org.dromara</groupId>
       <artifactId>soul-spring-boot-starter-plugin-httpclient</artifactId>
       <version>${last.version}</version>
   </dependency>
   <!--soul springCloud plugin end-->

   <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-commons</artifactId>
        <version>2.2.0.RELEASE</version>
   </dependency>
   <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        <version>2.2.0.RELEASE</version>
   </dependency>
  • 如果你使用 eureka 作為 springCloud的注冊中心新增如下配置:
<dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
       <version>2.2.0.RELEASE</version>
  </dependency>

在網(wǎng)關(guān)的yaml文件中 新增如下配置:

 eureka:
     client:
       serviceUrl:
         defaultZone: http://localhost:8761/eureka/ # 你的eureka地址
     instance:
       prefer-ip-address: true
  • 如果你使用 nacos 作為 springCloud的注冊中心新增如下配置:
 <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
       <version>2.2.0.RELEASE</version>
 </dependency>

在網(wǎng)關(guān)的yaml文件中 新增如下配置:

 spring:
     cloud:
       nacos:
         discovery:
            server-addr: 127.0.0.1:8848 # 你的nacos地址

重啟網(wǎng)關(guān)

三、調(diào)用SpringCloud接口

image.png
image.png

調(diào)用都成功返回

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容