【spring cloud】(一)使用idea創建可相互調用的多模塊應用

在這里插入圖片描述

??各位小伙伴們大家好,歡迎來到這個小扎扎的spring cloud專欄,在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛

💡spring cloud知識點速覽

  • 🌕 版本選擇
  • 🌕 技術選型
  • 🌕 spring boot單體模塊的搭建
    • 🌓 創建父工程
    • 🌓 父工程的pom文件
    • 🌓 創建子模塊
  • 🌕 RestTemplate
    • 🌓 使用步驟
  • 🌕 系統重構(子模塊間重復代碼的抽取)

🌕 版本選擇

??學習spring cloud之前需要有一定的spring boot基礎,按我現階段的了解就是,spring boot屬于是做業務開發的,所謂的微服務就是將一個大的項目分為是很多的使用spring boot進行開發的單體項目。當然如果沒有后續的話,那么這一個項目也就成了一盤散沙,沒有辦法真正的實現它的作用,于是就需要使用spring cloud將所有的spring boot單體項目整合起來,形成一個完整的項目,從而發揮它最大的作用。

??既然在一個項目中涉及到了兩種框架技術的使用,那么就需要考慮這兩種框架會不會產生沖突。那么我們應該如何查看這兩種框架的版本適用呢?我們可以參考spring cloud官網給出的答案,這個文檔是實時更新的,不用擔心過時的問題。https://spring.io/projects/spring-cloud,打開鏈接直接向下劃即可找到在這里插入圖片描述
??官網在這里只是提供了一個相對模糊的版本對應,想要更加具體的版本對應可以參考以下網站https://start.spring.io/actuator/info,將網站返回的JSON字符串經過工具的轉換即可發現其中的版本對應在這里插入圖片描述
??當然,上述兩種方法都是在boot和cloud技術版本選擇時的一種參考,真正確定下來還是要看cloud官網上面的參考doc文檔,點進去的Supported Boot Version才是最終敲定的依據
在這里插入圖片描述

🌕 技術選型

??前面講到spring cloud是一個微服務的框架,既然是微服務就說明我們需要使用技術控制各個單體服務之間的通信,還有不同服務的調用等。于是就涉及到了這些不同功能的技術選型,我們都知道技術是在不停迭代更新的,有很多的技術停更淘汰,與此同時也有很多的技術更新迭代出來,于是我們應該知道不同的功能應該選用哪種可行的技術。

  • 服務注冊中心:
    • Eureka
    • Zookeeper
    • Consul
    • Nacos
  • 服務調用:
    • Ribbon
    • LoadBalancer
    • Feign
    • OpenFeign
  • 服務降級:
    • Hystrix
    • Resilience4j
    • Sentinel
  • 服務網關:
    • Zuul
    • Zuul2
    • Gateway
  • 服務配置:
    • Config
    • Nacos
  • 服務總線:
    • Bus
    • Nacos

🌕 spring boot單體模塊的搭建

🌓 創建父工程

🌒 project項目創建
修改項目名 -> 修改項目存儲地址 -> 修改maven配置 -> finished
在這里插入圖片描述
🌒 配置字符編碼格式
在這里插入圖片描述
🌒 配置注解生效激活
在這里插入圖片描述
🌒 配置項目的Java的版本在這里插入圖片描述

🌓 父工程的pom文件

??父pom中的并不會引入相應的jar包,而是定義了版本號供子模塊使用,只有子模塊導入依賴坐標的時候(如果父pom中有,可以不指定版本號)才會引入相應的jar包

<?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>項目的組id</groupId><artifactId>項目名稱</artifactId><version>項目版本</version><packaging>pom</packaging><!--統一管理設置jar包的版本--><properties>..........</properties><!--依賴傳遞:父pom文件中的依賴版本會被子模塊自動繼承,除非子模塊中自己聲明版本,否則就使用父pom的版本,同理,父pom的依賴版本升級,子模塊也會升級到相應的版本--><dependencyManagement><dependencies><dependency>.......</dependency>......<dependency>.......</dependency></dependencies></dependencyManagement></project>

🌓 創建子模塊

??在父工程上右鍵,新建一個model
在這里插入圖片描述
創建之后需要配置子模塊的配置文件,也就是子模塊的resources文件夾下的application.yml文件,主要就是配置端口號和數據庫相關

server:port: 8001spring:application:name: cloud-payment-servicedatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: org.gjt.mm.mysql.Driverurl: …… ……… ………username: …… ……password: …… …… ……mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.xiaochen.springcloud.entities

然后就是創建相應的mapper、service、serviceImpl、映射文件

🌕 RestTemplate

??Rest Template就是一種對HTTPClient的封裝,是Spring提供的用于訪問Rest服務的客戶端模板工具集,其內部提供了多種便捷的用于訪問遠程http服務的方法,主要就是用于實現微服務項目中幾個服務之間的相互調用。

🌓 使用步驟

使用配置類向容器中注入RestTemplate對象

/*** @ClassName: ApplicationContextConfig* @Description: 程序配置類* @author: chenhao* @date: 2022/7/17*/
@Configuration
public class ApplicationContextConfig {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

??在需要使用它的地方用@Resource注入對象,然后就是調用api實現相應的功能,全部api參考以下鏈接:https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html

🌕 系統重構(子模塊間重復代碼的抽取)

??創建一個公共模塊,將公共的代碼和依賴全部抽取到這個公共模塊中,然后別的模塊如果想要使用公共模塊的代碼,就必須先對公共模塊的maven進行clean和install,然后在pom文件中導入這個公共模塊的依賴即可使用公共部分代碼在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534989.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534989.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534989.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

epson彩色打印機加墨水_愛普生打印機墨盒如何加墨?

展開全部掌握以下幾點步驟&#xff0c;即可輕松加墨。1、首先&#xff0c;從打印機上取下墨盒&#xff0c;32313133353236313431303231363533e4b893e5b19e31333365646234這里就不好做介紹了&#xff0c;取下墨盒的方法因機而異。將墨盒上的一層貼紙撕掉&#xff0c;并拿出所需材…

python字符串百分號_Python字符串格式化的2種方法

本文介紹了Python字符串格式化&#xff0c;主要有兩種方法&#xff0c;分享給大家&#xff0c;具體如下 用于字符串的拼接&#xff0c;性能更優。 字符串格式化有兩種方式&#xff1a;百分號方式、format方式。 百分號方式比較老&#xff0c;而format方式是比較先進的&#xff…

【踩坑,已解決】spring cloud刪除子模塊后創建同名模塊時遇到的刪除不凈,java、resources包失效,java、resources包被標記為模塊等問題

&#x1f4a1;問題速覽&#x1f4cc; 問題復現&#x1f4cc; 沒有任何操作&#xff0c;model又出現了&#x1f4cc; 模塊重建后java、resources包失效&#x1f4cc; 模塊重建后java、resources包被標記為了模塊&#x1f4cc; 問題復現 本人是在跟著B站尚硅谷的視頻練習Spring c…

藍牙掃描過程解析_智慧定位系統之藍牙網關在室內定位技術的原理淺析-新導智能...

藍牙室內定位技術是利用在室內安裝的若干個藍牙局域網接入點&#xff0c;把網絡維持成根據多用戶的基礎網絡連接形式&#xff0c;并確保藍牙局域網接入點始終是這個微網的主設備&#xff0c;然后經過丈量信號強度對新加入的盲節點進行三角定位。蘇州新導實時定位體系(RTLS)和室…

【spring cloud】(二)服務的注冊發現——Eureka

各位小伙伴們大家好&#xff0c;歡迎來到這個小扎扎的spring cloud專欄&#xff0c;在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結&#xff0c;鑒于 看到就是學到、學到就是賺到 精神&#xff0c;這波依然是血賺 ┗|&#xff40;O′|┛ &#x1f4a1;spr…

python選擇題題庫百度文庫_大學Python程序題題庫

程序設計 題目&#xff1a;補充 fun 函數&#xff0c;其功能是判斷一個整數是否是素數&#xff0c;在主 函數 main 中輸入一個整數&#xff0c;調用該 fun 函數進行判斷并輸 出結果。 要求&#xff1a;使用 math 相關函數 import math def fun(n): i,w2,0 if n<1: w1 while …

新手攻略熔爐_我的世界攻略:生存模式新手攻略

《我的世界》(英文:《minecraft》)是一款風靡全球的高自由度沙盒游戲&#xff0c;由瑞典MojangAB和4J Studios開發。國際版由微軟Mojang工作室開發&#xff0c;中國版由網易代理。Minecraft著重于讓玩家去探索、交互&#xff0c;并且改變一個由一立方米大小的方塊動態生成的地圖…

【spring cloud】(三)服務調用——Ribbon、OpenFeign

各位小伙伴們大家好&#xff0c;歡迎來到這個小扎扎的spring cloud專欄&#xff0c;在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結&#xff0c;鑒于 看到就是學到、學到就是賺到 精神&#xff0c;這波依然是血賺 ┗|&#xff40;O′|┛ &#x1f4a1;服務…

c語言斐波那契數列_劍指Offer-10-I.斐波那契數列

題目題目描述寫一個函數&#xff0c;輸入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;數列的第 n 項。斐波那契數列的定義如下&#xff1a; F(0) 0, F(1) 1F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契數列由 0 和 1 開始&#xff0c;之后的斐波那契數…

mysql 導入 mssql_MySQL(csv,text)導入mssql使用方法

MySQL(csv,text)導入mssql是非常的簡單了但是在導入過程中會碰到text字段問題了&#xff0c;下面我們就來看一篇關于MySQL(csv,text)導入mssql使用方法吧&#xff0c;具體的操作細節如下所示。分兩步處理&#xff0c;第一步是將csv導入到mysql。沒有使用mssql自帶客戶端的導入功…

c# mvvm模式獲取當前窗口_AWTK-MVVM 介紹

MVVM(Model-View-ViewModel)介紹8.1 分離用戶界面和業務邏輯在開發應用程序時&#xff0c;要把用戶界面和業務邏輯分離開來&#xff0c;這是每個程序員都知道的常識。分離用戶界面和業務邏輯有幾個重要的好處&#xff1a;有利于隔離變化。用戶界面是最容易變化的&#xff0c;易…

【spring cloud】(三)服務降級——Hystrix

各位小伙伴們大家好&#xff0c;歡迎來到這個小扎扎的spring cloud專欄&#xff0c;在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結&#xff0c;鑒于 看到就是學到、學到就是賺到 精神&#xff0c;這波依然是血賺 ┗|&#xff40;O′|┛ &#x1f4a1;服務…

mysql高級查詢教程_MYSQL高級查詢

實際開發中&#xff0c;經常需要對某些數據進行統計&#xff0c;比如&#xff0c;統計某個字段的最大值、最小值、平均值等。MySQL中&#xff0c;提供了一些函數來實現這些功能聚合函數COUNT()——返回某列的行數SUM()——返回某列值的和AVG()——返回某列的平均值MAX()——返回…

【dubbo】(一) dubbo是什么?

各位小伙伴們大家好&#xff0c;歡迎來到這個小扎扎的dubbo專欄&#xff0c;在這個系列專欄中我對B站尚硅谷雷神的dubbo教程進行一個總結&#xff0c;鑒于 看到就是學到、學到就是賺到 精神&#xff0c;這波依然是血賺 ┗|&#xff40;O′|┛ &#x1f4a1;dubbo知識點速覽&a…

axios安裝_Vue腳手架安裝,與基本語法(干貨)

首先&#xff0c;這篇Vue文章是為了下一篇我整合springbootvue前后分離的小demo&#xff0c;這兩天整理好會上傳哈哈1. Node.js安裝1.1 下載安裝在node.js 官網下載&#xff0c; 根據自己電腦系統安裝&#xff0c;一直點下一步即可1.2 測試安裝是否成功WindowsR打開cmd窗口&…

mysql port range_MySQL 數據庫常見調優方法及參數設置_MySQL

1. 關閉 SELinuxvim /etc/selinux/config 更改 SELINUXenforcing 為 SELINUXdisabled2. 更改 IO Schedule, 對于 SSD 硬盤無需更改echo deadline > /sys/block/sda/queue/scheduler3. 更改 ulimitvim /etc/security/limits.conf* soft nofile 65535* hard nofile 65535roo…

base64 能放數組里面么_數組:總結篇

我們做個總結吧數組理論基礎數組是非常基礎的數據結構&#xff0c;在面試中&#xff0c;考察數組的題目一般在思維上都不難&#xff0c;主要是考察對代碼的掌控能力也就是說&#xff0c;想法很簡單&#xff0c;但實現起來 可能就不是那么回事了。首先要知道數組在內存中的存儲方…

xampp mysql 卸載_卸載Xampp并安裝apache + mysql + php 過程

首先是卸載xampp&#xff0c;打開xampp-control.exe 控制面板&#xff0c;停止apache和mysql服務。如果你是安裝版xampp&#xff0c;可以到如果不是則安裝如下方法。停止服務之后。就需要卸載服務。打開cmd&#xff0c;用sc.exe這個Windows命令開始——運行——cmd.exe&#xf…

python判斷正確錯誤_python錯誤和異常

Python3 錯誤和異常 作為 Python 初學者&#xff0c;在剛學習 Python 編程時&#xff0c;經常會看到一些報錯信息&#xff0c;在前面我們沒有提及&#xff0c;這章節我們會專門介紹。 Python 有兩種錯誤很容易辨認&#xff1a;語法錯誤和異常。 Python assert&#xff08;斷言&…

nodejs mysql 返回json_python向mysql中存儲JSON及Nodejs取出

雖然把JSON數據存入mysql也是比較蛋疼&#xff0c;但是相比使用Nodejs嵌套處理多個mysql查詢并拼接返回數據也算是沒mongo時的一個折中方案了。我使用python拼接了一個json格式的字符串&#xff0c;卻遇到了一些問題1&#xff0c;如果把json數據轉成str存入&#xff0c;那么nod…