目錄
1、Spring Boot項目腳手架快速搭建
1.1 生成工程基本配置
1.2 生成工程。
1.3 導(dǎo)入開發(fā)工具(此處為Idea)
1.4 運行代碼
1.5 驗證是否能訪問
2、Spring Cloud環(huán)境搭建
2.1 版本匹配問題
2.2 Spring Cloud環(huán)境測試
3、引入Eureka Server
3.1 引入依賴配置
3.2 Eureka Serve YML配置
3.3 啟動類添加Eureka Server注解
3.4 啟動項目并測試驗證
由于Idea最新社區(qū)版不存在Spring Initializr插件,r需要認(rèn)證收費。那除了采用集成插件外,我們采用另外一種通過引導(dǎo)方式, 直接通過官網(wǎng)提供的腳手架,創(chuàng)建完成后,導(dǎo)入自己的發(fā)工具中即可。
1、Spring Boot項目腳手架快速搭建
1.1 生成工程基本配置
官網(wǎng)地址:http://start.spring.io
注意:SpringBoot版本的選擇,如果使用JDK8的話,則選擇2.x.x版本。如果選擇了3.0.0版本的SpringBoot,JDK最低要17。版本不適配會造成Application運行失敗。
1.2 生成工程。
點擊 ?生成工程。如下圖,
生成的壓縮包。
1.3 導(dǎo)入開發(fā)工具(此處為Idea)
將上述壓縮包解壓后,導(dǎo)入到Idea中。通過Maven更新所需要的包。依賴包較多,大概需要1~2分鐘左右。
1.4 運行代碼
編譯沒問題后,直接運行SpringCloudCaseApplication.java.
但是,此時我們會發(fā)現(xiàn)一個奇怪的問題。程序正常啟動完后就自己結(jié)束了。
這是為什么呢?有兩方面原因:
1)web項目需要引入,spring-boot-web包依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2)服務(wù)運行環(huán)境依賴Tomcat。
下載中的demo配置為,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>?//僅作用于編譯和測試階段
</dependency>
需要調(diào)整為,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>compile</scope>?//在運行階段也生效
</dependency>
scope參數(shù)說明:
Compile
默認(rèn)的scope,表示 dependency 都可以在生命周期中使用。而且,這些dependencies 會傳遞到依賴的項目中。適用于所有階段,會隨著項目一起發(fā)布
Provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。這個scope 只能作用在編譯和測試時,同時沒有傳遞性。
Runtime
表示dependency不作用在編譯時,但會作用在運行和測試時,如JDBC驅(qū)動,適用運行和測試階段。 test表示dependency作用在測試時,不作用在運行時。 只在測試時使用,用于編譯和運行測試代碼。不會隨項目發(fā)布。 system跟provided 相似,但是在系統(tǒng)中要以外部JAR包的形式提供,maven不會在repository查找它。
此時,重啟啟動后,運行正常。
1.5 驗證是否能訪問
輸入瀏覽器:http://localhost:8080/
?
由于我們沒有配置controller, 所以會打印此錯誤信息,但是表明訪問是正常的。
2、Spring Cloud環(huán)境搭建
我們知道,Spring Cloud是基于Spring Boot改進的框架。所以,可以直接在現(xiàn)有項目上去增加Spring Cloud相關(guān)組件即可。
2.1 版本匹配問題
引入springCLoud前,我們需要看下SpringCloud和SpringBoot版本對應(yīng)關(guān)系. 否則,如果版本匹配有問題,啟動則會報錯。
解決SpringBoot和SpringCloud版本匹配問題:(本案例中使用版本)。
Spring Boot版本:
?<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
?
Spring Cloud版本:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR12</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
不清楚這怎么看版本對應(yīng)關(guān)系的同學(xué)請移步至前一篇文章。更多版本對應(yīng)關(guān)系如下。
?
2.2 Spring Cloud環(huán)境測試
接下來,我們以Spring Cloud服務(wù)注冊功能來驗證Spring Cloud是否配置成功。pom.xml文件中加入Eureka依賴包。
3、引入Eureka Server
3.1 引入依賴配置
如下,
<dependency>
????????<groupId>org.springframework.cloud</groupId>
????????<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
?
3.2 Eureka Serve YML配置
#指定應(yīng)用名稱
spring:
??application:
????name: eureka-server
# 服務(wù)注冊中心 (單節(jié)點)
server:
??port: 8700
eureka:
??instance:
????hostname: localhost
??client:
????fetch-registry: false # 表示是否從Eureka Server獲取注冊信息,默認(rèn)為true.因為這是一個單點的Eureka Server,不需要同步其他的Eureka Server節(jié)點的數(shù)據(jù),這里設(shè)置為false
????register-with-eureka: false # 表示是否將自己注冊到Eureka Server,默認(rèn)為true.由于當(dāng)前應(yīng)用就是Eureka Server,故而設(shè)置為false.
????service-url:
??????# 設(shè)置與Eureka Server的地址,查詢服務(wù)和注冊服務(wù)都需要依賴這個地址.默認(rèn)是http://localhost:8761/eureka/;多個地址可使用','風(fēng)格.
??????defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
?
3.3 啟動類添加Eureka Server注解
@EnableEurekaServer。//表示可以將項目作為SpringCloud中的注冊中心。用于激活Eureka服務(wù)器相關(guān)配置EurekaServerAutoConfiguration的注釋。
?
3.4 啟動項目并測試驗證
啟動成功后,如下圖:
?
在瀏覽器中輸如 http://localhost:8700.
?出現(xiàn)以上界面,說明Eureka Server配置成功。至此,Spring Cloud基本環(huán)境搭建完成。文章來源:http://www.zghlxwxcb.cn/news/detail-411682.html
以上!文章來源地址http://www.zghlxwxcb.cn/news/detail-411682.html
到了這里,關(guān)于快速搭建第一個SpringCloud程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!