微服務應用架構腳手架

微服務應用架構腳手架

開源項目地址:git

http://git.oschina.net/chinax...web

做爲一名碼農,常常要爲了工做或業餘愛好本身搭建項目(大公司除外),配環境,找Jar包,非常煩人。sql

Maven支持自定義腳手架,因此本身整了一套多模塊的,面向微服務應用的Maven Archetype供你們參考使用。數據庫

可快速建立用於開發環境的基礎應用架構。apache

模板生成應用架構組成tomcat

生成代碼結構mybatis

模塊是能夠本身配置的。架構

  • dal: 數據訪問層,腳手架中採用的是mybatis, druid.
  • biz: 邏輯處理層,依賴dal,處理業務邏輯,事物等。
  • facade: 微服務接口層,對外提供的接口定義,參數定義,數據傳輸格式定義等。
  • facade-impl: 微服務接口實現層,具體的微服務邏輯,包括服務的註冊發佈等,依賴biz層。
  • integration: 第三方服務層,若是須要調用別的系統發佈的服務,能夠在這一層訂閱具體的服務供內部使用。
  • web: 視圖接口層,處理http請求,響應數據或頁面,能夠依賴biz和integration.
  • assembly: 打包處理,將各模塊組裝成war包。
  • conf: 配置文件,配合assembly實現不一樣環境使用不一樣配置信息的功能。
  • webdocs: 靜態資源文件,模板引擎使用的是freemarker, 固然,你能夠自行替換。

安裝腳手架

關於 maven 腳手架相關的知識請自行搜索或查閱相關書籍文檔。app

將本項目克隆或下載到本地目錄,執行webapp

mvn clean install

將腳手架發佈到本地maven倉庫中。

若是須要將其發佈到私服中,修改腳手架的pom文件中的 distributionManagement 元素內容爲本身的私服地址便可。(前提是你得有私服的發佈帳號及密碼)

執行

mvn clean deploy

將腳手架發佈到私服。

查看倉庫中會多一個:archetype-catalog.xml 文件。

內容大體以下:

...
<archetype>
  <groupId>com.quanshi</groupId>
  <artifactId>sof-archetype</artifactId>
  <version>1.0.0</version>
  <description>sof-archetype</description>
</archetype>
...

使用腳手架

當腳手架發佈成功後,就可使用了。

使用交互的方式:

mvn archetype:generate

出現腳手架列表:

Choose archetype:
...
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
11: local -> com.quanshi:sof-archetype (sof-archetype)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7:

選擇 11: local -> com.quanshi:sof-archetype (sof-archetype)

按照提示,輸入下面幾項內容:

  • groupId: 你要建立的項目的groupId
  • artifactId: 你要建立的項目的artifactId
  • version: 項目版本號
  • package: 項目基礎包路徑
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: 11
Define value for property 'groupId': com.coder4j
Define value for property 'artifactId': demo
Define value for property 'version' 1.0-SNAPSHOT: : 1.0.0
Define value for property 'package' com.coder4j: : com.coder4j.demo
Confirm properties configuration:
groupId: com.coder4j
artifactId: demo
version: 1.0.0
package: com.coder4j.demo
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: sof-archetype:1.0.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.coder4j
[INFO] Parameter: artifactId, Value: demo
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: package, Value: com.coder4j.demo
[INFO] Parameter: packageInPathFormat, Value: com/coder4j/demo
[INFO] Parameter: package, Value: com.coder4j.demo
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: groupId, Value: com.coder4j
[INFO] Parameter: artifactId, Value: demo
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\app\dal\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\app\biz\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\app\facade\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\app\facade-impl\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\app\integration\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\app\web\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\assembly\pom.xml
[INFO] Parent element not overwritten in C:\Users\yanxiang.huang\workspace\test\demo\webdocs\pom.xml
[INFO] Project created from Archetype in dir: C:\Users\yanxiang.huang\workspace\test\demo
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 06:50 min
[INFO] Finished at: 2017-07-27T16:16:00+08:00
[INFO] Final Memory: 13M/243M
[INFO] ------------------------------------------------------------------------

最終獲得項目。

或者可使用一條命令快速生成:

mvn archetype:generate \
-DarchetypeGroupId=com.quanshi \
-DarchetypeArtifactId=sof-archetype \
-DarchetypeVersion=1.0.0 \
-DgroupId=com.coder4j \
-DartifactId=bee \
-Dversion=1.0.0 \
-Dpackage=com.coder4j.bee

若是是別人發佈到私服,你經過私服來建立的話。

將私服地址配置到setting.xml中。

配置mirror或者repository都可。

項目配置

經過腳手架獲得的項目須要簡單的配置部份內容。

日誌路徑

項目日誌路徑的配置文件在:conf/config/logback.xml 中,自行更改一個可使用的日誌路徑。

數據庫

初始項目的dal層是有初始代碼的,須要用到一張表:t_demo

表結構在 dal/src/main/resources/test.sql 中。

數據庫的配置文件在 conf/config/application.properties

我這裏沒有配置到 conf/filter 下,若是大家須要不一樣環境,請將配置放置到filter目錄的不一樣文件內,assembly打包模塊會將filter中的文件填充到config中。

項目啓動

配置更改完畢後,下面開始編譯啓動。

mvn clean package

啓動完成,將 target/${artifactId}.war 文件拷貝到 tomcat 的webapps下,啓動tomcat便可。

項目默認使用的jdk 1.8編譯。

訪問:

http://localhost:8080/${artifactId}/
相關文章
相關標籤/搜索