javascript
Aooms_基于SpringCloud的微服务基础开发平台实战_002_工程构建
為什么80%的碼農都做不了架構師?>>> ??
一、關于框架更名的一點說明
? ? ? 最近在做年終總結、明年規劃、還有幾個項目需要了結、出解決方案,事情還比較多,死了不少腦細胞,距離上一篇文章發出已經過了3天,是不是有些人會認為我放棄了又不搞了,NONO,一定會堅持下去,趁周末趕緊整理第二篇并把工程骨架構建起來。
? ? ? 上一篇<開篇博文>將框架之前命名為JCloud,后來發現諸多重名,這種感覺很不爽,經過深思熟慮,決定將框架名更改為 Aooms,上一篇博文標題、內容就暫不修改了留個印記。
? ? ??Aooms?名稱來源:取自 a?microservice?英文縮寫,中文翻譯為一個微服務框架,簡寫?ams 發現太短,還是比較容易重復,后來中間補上兩個oo,沒啥具體含義就是湊個數避免重復,加上后驚喜的發現看起來比較順眼,也比較好記,那就是它了,?它念?‘’奧木思‘’,哈哈是不是土的很。
二、開發環境說明
| 環境名稱 | 名稱及版本 |
| 開發IDE | IDEA_2017.3.3 |
| JDK | 1.8+ |
| Servlet | 3.0+ |
| Web服務器 | Tomcat8.5+ |
| 數據庫 | Mysql5.5+ |
| Spring | 5.0.2 |
| SpringBoot | 2.0.0+ |
idea初次使用,都說好用嘗試一下。
三、工程結構說明
工程整體分為?公共部分 、應用部分、Demo部分。
(1)公共部分
?? ?業務無關的公共封裝類庫與前端資源庫,為應用部分服務。
- aooms-core
- 提供技術框架層面的支撐能力,包含公共的工具類、緩存、消息隊列、服務注冊、發現、調用、分庫分表等,為整個框架的核心
- aooms-static-web
- 前端所需的公共資源庫,包含css、js、images及各種前端所需插件
- aooms-static-webmgr
- 管理后臺所需的公共資源庫,包含css、css、js、images及各種管理后臺所需插件
(2)應用部分
? ? ????業務無關的基礎應用,具體項目中拿來即用,無需重復開發,下面以rbac為例說明應用部分的工程結構。
????????rbac:用戶權限系統,包含角色、用戶、機構、菜單、功能等的配置維護。
- aooms-rbac
- 權限系統的基礎服務
- aooms-rbac-web
- 權限系統的前端界面(對于權限系統此處可能不需要前端,僅僅為了說明完整工程結構)
- aooms-rbac-webmgr
- 權限系統的后臺界面
- aooms-rbac-gateway
- 權限系統的網關,提供給三方調用或其他服務調用的入口,加此網關層,一是為了避免服務間存在細節性的耦合,二是統一服務調用入口,便于做監控、集中式的管理。(同樣對于權限系統此處可能不需要,僅僅為了說明完整工程結構)
(3) Demo部分
????? ? 為框架的基本使用說明、演示工程
?
???????后續其他的基礎應用工程結構rbac公共結構一致,具體業務系統也可按此方式構建,需要強調一點,上面說的前端界面、后臺界面實則都屬于前端,但是具體到用戶群體、使用場景不一樣,使用到的前端技術可能會存在一些差異,因此構建公共資源部分時分了前端與后臺進行了區分,后面在說到前端界面實則指的是面向用戶大眾的功能界面,后臺界面說的是管理員或運維人員使用系統的界面或者偏管理型系統的界面
?
四、構建過程遇到的一點問題
?下面是初次使用SpringCloud構建工程時可能會遇到的問題,老司機此處可以飛過了。
(1)?pom配置完成后,maven顯示紅線
問題描述:配置完pom.xml文件,發現idea右側的Maven Projects?視圖中,部分包下帶紅波浪線。
截圖當時沒保存,貼到圖時調整正常的
解決辦法如下:
1、從pom文件先去掉對應到依賴,然后在引入,一般都能正常
2、如果1步驟無法解決,需要檢查倉庫地址、groupId、artifactId、或version?信息是否正確
———————————————————————————————————————————
(2) has broken path
問題描述:maven依賴正常,類中卻無法引入,查看Project Setting,?發現如下錯誤
關鍵錯誤信息:has?broken path.
解決辦法如下:
1、雙擊錯誤的jar,進入編輯界面,點擊左上角加號,從本地目錄中選擇jar包文件所在目錄,確定即可
2、在jar列表查看錯誤到信息已經消失,問題解決
———————————————————————————————————————————
(3)?啟動報錯
問題描述:工程構建完畢,右鍵Run啟動之后出現如下異常信息
解決辦法如下:
啟動主類添加注解@EnableDiscoveryClient(autoRegister=false)默認autoRegister屬性為true
默認情況下我們并沒有啟動Eureka服務端,也沒有配置發現注冊中心的相關IP、端口信息,需要先禁用客戶端的自動注冊功能,另外如果需要運行一個最簡單的應用,最好將pom.xml中多余的依賴暫時去掉,具體可參考spring官方給的pom文件模版,對應的項目信息、springboot版本修改為自己需要的即可(下面貼個官方給的模版),讓工程運行起來
<?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>com.example</groupId><artifactId>myproject</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.BUILD-SNAPSHOT</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><!-- Additional lines to be added here... --><!-- (you don't need this if you are using a .RELEASE version) --><repositories><repository><id>spring-snapshots</id><url>https://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><url>https://repo.spring.io/milestone</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-snapshots</id><url>https://repo.spring.io/snapshot</url></pluginRepository><pluginRepository><id>spring-milestones</id><url>https://repo.spring.io/milestone</url></pluginRepository></pluginRepositories> </project>?
———————————————————————————————————————————
(4)?控制器寫完后,啟動后無法訪問
問題描述:控制器編寫完成,項目啟動后無法訪問
解決辦法如下:
沒有引入spring-webmvc的包,引入spring-webmvc包,?啟動主類添加注解@EnableWebMvc,開啟mvc支持,其實當引入了spring-webmvc 包時,不配置@EnableWebMvc注解也可以,程序啟動時會自動進行掃描映射路徑。
———————————————————————————————————————————
五、碼云地址,歡迎參與、Star
https://gitee.com/cyb-javaer/Aooms
?
上一篇:<JCloud_基于SpringCloud的微服務基礎開發平臺實戰_001_開篇>
轉載于:https://my.oschina.net/cccyb/blog/1618109
總結
以上是生活随笔為你收集整理的Aooms_基于SpringCloud的微服务基础开发平台实战_002_工程构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang 简单web服务
- 下一篇: WC2018游记