摘要:微服務應用架構腳手架開源項目地址作為一名碼農,經常要為了工作或業余愛好自己搭建項目大公司除外,配環境,找包,很是煩人。可快速創建用于開發環境的基礎應用架構。前提是你得有私服的發布賬號及密碼執行將腳手架發布到私服。
微服務應用架構腳手架
開源項目地址:
http://git.oschina.net/chinax...
作為一名碼農,經常要為了工作或業余愛好自己搭建項目(大公司除外),配環境,找Jar包,很是煩人。
Maven支持自定義腳手架,所以自己整了一套多模塊的,面向微服務應用的Maven Archetype供大家參考使用。
可快速創建用于開發環境的基礎應用架構。
模板生成應用架構組成
生成代碼結構
模塊是可以自己配置的。
dal: 數據訪問層,腳手架中采用的是mybatis, druid.
biz: 邏輯處理層,依賴dal,處理業務邏輯,事物等。
facade: 微服務接口層,對外提供的接口定義,參數定義,數據傳輸格式定義等。
facade-impl: 微服務接口實現層,具體的微服務邏輯,包括服務的注冊發布等,依賴biz層。
integration: 第三方服務層,如果需要調用別的系統發布的服務,可以在這一層訂閱具體的服務供內部使用。
web: 視圖接口層,處理http請求,響應數據或頁面,可以依賴biz和integration.
assembly: 打包處理,將各模塊組裝成war包。
conf: 配置文件,配合assembly實現不同環境使用不同配置信息的功能。
webdocs: 靜態資源文件,模板引擎使用的是freemarker, 當然,你可以自行替換。
安裝腳手架關于 maven 腳手架相關的知識請自行搜索或查閱相關書籍文檔。
將本項目克隆或下載到本地目錄,執行
mvn clean install
將腳手架發布到本地maven倉庫中。
如果需要將其發布到私服中,修改腳手架的pom文件中的 distributionManagement 元素內容為自己的私服地址即可。(前提是你得有私服的發布賬號及密碼)
執行
mvn clean deploy
將腳手架發布到私服。
查看倉庫中會多一個:archetype-catalog.xml 文件。
內容大致如下:
...使用腳手架... com.quanshi sof-archetype 1.0.0 sof-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:Usersyanxiang.huangworkspace estdemoappdalpom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemoappizpom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemoappfacadepom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemoappfacade-implpom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemoappintegrationpom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemoappwebpom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemoassemblypom.xml [INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace estdemowebdocspom.xml [INFO] Project created from Archetype in dir: C:Usersyanxiang.huangworkspace estdemo [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}/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67493.html
摘要:就和是應用的腳手架一樣,是分布式和集群應用的腳手架。是由一個一個的微服務組成,而這些微服務都是在注冊中心管理起來的。為了降低維護成本,我們引入了分布式配置服務的概念。 就和 springboot 是 web 應用的腳手架一樣, springcloud 是分布式和集群應用的腳手架。 但是并不是所有的同學都有接觸過分布式和集群,所以為了讓學習曲線變得緩和,站長按照如下順序展開 spring...
摘要:授權框架使第三方應用程序來獲取對服務的有限訪問機會。無論是通過編排資源所有者和服務之間的交互批準的資源所有者,或通過允許第三方應用程序來獲取自己的訪問權限。 SpringCloud打造微服務平臺--概覽 簡述 SpringCloud是什么 Spring Boot和SpringCloud是什么關系 Spring Boot是Spring的一套快速WEB開發的腳手架,可建立獨立的Sprin...
摘要:為函數計算設置環境變量必填上傳到的必填上傳到的必填上傳到的。另外,按照福布斯雜志的統計,在商業和企業數據中心的典型服務器僅提供的平均最大處理能力的輸出。函數計算就是這里的膠水。 摘要: 使用 puppeteer 結合函數計算,可以快速的構建彈性的服務完成各種功能,包括:生成網頁截圖或者 PDF、高級爬蟲,可以爬取大量異步渲染內容的網頁、模擬鍵盤輸入、表單自動提交、登錄網頁等,實現 U...
摘要:是一個能夠幫助開發者極速搭建基于微服務架構的應用程序,用最小的代碼實現常見的業務的框架。下面我們用分鐘時間來體驗一下?;蛉职惭b,是一個幫助你快速生成模板項目的命令行工具。 weroll是一個能夠幫助開發者極速搭建基于微服務架構的Node.js應用程序,用最小的代碼實現常見的web業務的框架。weroll基于MongoDB,Redis,Express 4.x以及APIServer(基于...
閱讀 922·2021-10-13 09:48
閱讀 3907·2021-09-22 10:53
閱讀 3114·2021-08-30 09:41
閱讀 1943·2019-08-30 15:55
閱讀 2920·2019-08-30 15:55
閱讀 1839·2019-08-30 14:11
閱讀 2205·2019-08-29 13:44
閱讀 764·2019-08-26 12:23