簡述
SpringCloud是一個微服務治理框架,基於SpringBoot,在項目構建與初期測試學習時使用多module的方式創建比較方便;idea可以使用maven或gradle的方式,這裏選擇maven;
Environment
- Intellij Idea version : 2017.2.4
- JavaSDK version : 1.8
- Maven version : 3.5.2
- SpringCloud version : Dalston.SR4
- SpringBoot version : 1.5.9.RELEASE
創建Project
1. NewProject -> Maven
2. 填寫GroupId、ArtifactId
3. 選擇存儲位置
4. 創建結果
5. 修改結果
這裏把src目錄刪掉;另外我還喜歡把project的.iml文件移到.idea下面;
創建第一個module : 註冊中心 Eureka
1. New Module : Spring
- 一定要在CloudSample上右鍵
- New Module後選擇Spring Initializr
選擇Spring Initializr
填寫GroupId以及ArtifactId,以及版本號d等
2. 選擇CloudDiscovery -> Eureka Server
Idea 2017 的選擇是這種左右目錄索引的方式,2016版本似乎是上下Expand的方式,如果不一樣不必太介懷;
3. Project的pom和module的pom的對比
4. 提取公共依賴後對比
這裏就看情況,不喜歡放project裏面也沒關係,但當module多的話方project更容易管理一點,另外也可用把版本等properties放project的pom中
5. 啓動前
- 在Applicatio前加@EnableEurekaServer
- 在resources目錄下的application.properties中添加一些基礎的屬性,服務名,端口等;
- 示例中可見配置文件的屬性引用方式;
6. 啓動
- 控制檯會報ConnectException,不必關心;
- 瀏覽器輸入配置的地址localhost:1001 後可見下圖,發現Eureka把自己也註冊到了註冊中心,這也是爲什麼此時啓動會有異常的原因;
- 添加屬性,eureka.client.register-with-eureka=false(不向註冊中心註冊自己,同樣適用其它服務)
- 重新啓動,異常消失,打開瀏覽器後Application列表爲空
Last
可以發現在new module的時候不用選擇spring initializr,和創建project一樣選擇Maven,然後在pom.xml中添加相關的依賴也是一樣的;
發現一個bug,在創建module過程中,填寫group、artifact、包等信息時,也有版本號,但是在版本號自己定義爲1.0.0後,創建結束後pom中的version仍然會被初始化爲默認的0.0.1-SNAPSHOT,應該是idea的,不過無傷大雅
如有問題歡迎私信博主或郵件[email protected]交流