根據SpringBoot實現分布式微服務項目近兩年的開發經驗,今天決定開始做SpringBoot實現分布式微服務項目的系列文章,幫助其他正在使用或計划使用SringBoot開發的小伙伴們。本次系列文章以電商項目的分布式實現展開,希望喜歡的小伙伴們關注。
SpringBoot簡介
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
Spring Boot 是 Spring 開源組織下的子項目,是 Spring 組件一站式解決方案,主要是簡化了使用 Spring 的難度,簡省了繁重的配置,提供了各種啟動器,開發者能快速上手。
Spring Boot 優點:
1,起步依賴
SpringBoot能夠快速構建項目的魔力之一就是起步依賴。spring-boot-starter-xxx就是SpringBoot的起步依賴具體實現。例如我們要實現一個Web項目,那就只要依賴spring-boot-starter-web即可。基於不同的功能,官方為我們整合了大量的起步依賴,簡化了我們搭建項目的工作。同時,起步依賴提供了可靠的依賴管理,降低了項目引入問題版本和依賴沖突的風險。
2,自動配置
SpringBoot使用@EnableAutoConfiguration 或者@SpringBootApplication注解 開啟組件掃描和自動配置。 通過@SpringBootApplication的exclude參數關閉特定 的自動配置。@SpringBootApplication(exclude = XAutoConfiguration.class)
3,應用監控
Spring Boot 監控核心是 spring-boot-starter-actuator 依賴,增加依賴后, Spring Boot 會默認配置一些通用的監控,比如 jvm 監控、類加載、健康監控等。Actuator插件是SpringBoot原生提供的一個服務,可以通過暴露端點路由,用來輸出應用中的諸多端點信息。
4,獨立運行
SpringBoot內置了Tomcat容器,可以直接執行 main 方法運行。項目部署可以打成jar的文件在服務器上通過執行java -jar 命令來運行服務。
看完前面這4大優點,大家應該也就有一些了解了,SpringBoot把復雜的配置和容易出錯的依賴統統都幫我們解決了,就連開發時本地的項目的啟動,只需要執行一下main方法就可搞定,這使得使用Springboot開發更容易上手。
開發環境及使用技術
軟件環境:JDK1.8,IntelliJ IDEA 2018, Mysql 5.6
分布式治理:Dubbo, Zookeeper
分布式緩存:Redis
消息隊列:Kafka
SpringBoot項目搭建
先創建一個項目
點擊“Create New Project”,進入以下界面
注意選擇JDK,然后點擊“Next”
填好Group, Artiface等信息,點擊“Next”
如果你要開發一個Web項目,選擇Web,再選擇依賴,點擊“Next”
然后設置好項目目錄,點擊“Finish”。此刻項目創建就完成了。
由於本次要創建分布式微服務項目,那么當前創建的只是一個父級工程的依賴,實際的(分布式模塊)項目是在這個父級工程下。那么我們先修改父級工程的POM文件,添加<packaging>pom</packaging>。
此刻,選擇父級工程,鼠標右擊,選擇“Open Modules Settings”
在打開的頁面,點擊上面的+號,添加一個Modules子項目。
點擊“Next”
在此頁面選擇剛創建的項目作為Parent,在為此子模塊設置GroupId和Artifactid,Version屬性,然后點擊“Next”。
點擊“Finish”。
現在我們在剛創建的Web項目中寫一個Controller和一個Application啟動類,並配置application.prepoties。
Controller里寫了一個get的api測試接口(/api/lyn/test)
application.properties
項目啟動類:
這時,我們可以啟動測試了。在啟動類右擊執行“Run”
項目啟動成功后,打開瀏覽器測試一下剛下的api接口。
從頭到尾,大家沒看到我手動去添加Maven依賴和配置吧。僅僅配了一個服務端口號(實際這個可以不配,默認是8080)。這也正是前面說的Springboot的優點,真是太容易上手。
下期文章:分布式開發環境下分模塊及提供者、消費者搭建,Dubbo服務提供及訂閱消費、Zookeeper實現服務注冊、單點登錄及分布式緩存處理。
獲取項目源碼,請掃碼關注公眾號,並發送Springboot獲取Github地址。