摘要:微服務(wù)應(yīng)用架構(gòu)腳手架開(kāi)源項(xiàng)目地址作為一名碼農(nóng),經(jīng)常要為了工作或業(yè)余愛(ài)好自己搭建項(xiàng)目大公司除外,配環(huán)境,找包,很是煩人??煽焖賱?chuàng)建用于開(kāi)發(fā)環(huán)境的基礎(chǔ)應(yīng)用架構(gòu)。前提是你得有私服的發(fā)布賬號(hào)及密碼執(zhí)行將腳手架發(fā)布到私服。
微服務(wù)應(yīng)用架構(gòu)腳手架
開(kāi)源項(xiàng)目地址:
http://git.oschina.net/chinax...
作為一名碼農(nóng),經(jīng)常要為了工作或業(yè)余愛(ài)好自己搭建項(xiàng)目(大公司除外),配環(huán)境,找Jar包,很是煩人。
Maven支持自定義腳手架,所以自己整了一套多模塊的,面向微服務(wù)應(yīng)用的Maven Archetype供大家參考使用。
可快速創(chuàng)建用于開(kāi)發(fā)環(huán)境的基礎(chǔ)應(yīng)用架構(gòu)。
模板生成應(yīng)用架構(gòu)組成
生成代碼結(jié)構(gòu)
模塊是可以自己配置的。
dal: 數(shù)據(jù)訪問(wèn)層,腳手架中采用的是mybatis, druid.
biz: 邏輯處理層,依賴dal,處理業(yè)務(wù)邏輯,事物等。
facade: 微服務(wù)接口層,對(duì)外提供的接口定義,參數(shù)定義,數(shù)據(jù)傳輸格式定義等。
facade-impl: 微服務(wù)接口實(shí)現(xiàn)層,具體的微服務(wù)邏輯,包括服務(wù)的注冊(cè)發(fā)布等,依賴biz層。
integration: 第三方服務(wù)層,如果需要調(diào)用別的系統(tǒng)發(fā)布的服務(wù),可以在這一層訂閱具體的服務(wù)供內(nèi)部使用。
web: 視圖接口層,處理http請(qǐng)求,響應(yīng)數(shù)據(jù)或頁(yè)面,可以依賴biz和integration.
assembly: 打包處理,將各模塊組裝成war包。
conf: 配置文件,配合assembly實(shí)現(xiàn)不同環(huán)境使用不同配置信息的功能。
webdocs: 靜態(tài)資源文件,模板引擎使用的是freemarker, 當(dāng)然,你可以自行替換。
安裝腳手架關(guān)于 maven 腳手架相關(guān)的知識(shí)請(qǐng)自行搜索或查閱相關(guān)書(shū)籍文檔。
將本項(xiàng)目克隆或下載到本地目錄,執(zhí)行
mvn clean install
將腳手架發(fā)布到本地maven倉(cāng)庫(kù)中。
如果需要將其發(fā)布到私服中,修改腳手架的pom文件中的 distributionManagement 元素內(nèi)容為自己的私服地址即可。(前提是你得有私服的發(fā)布賬號(hào)及密碼)
執(zhí)行
mvn clean deploy
將腳手架發(fā)布到私服。
查看倉(cāng)庫(kù)中會(huì)多一個(gè):archetype-catalog.xml 文件。
內(nèi)容大致如下:
...使用腳手架... com.quanshi sof-archetype 1.0.0 sof-archetype
當(dāng)腳手架發(fā)布成功后,就可以使用了。
使用交互的方式:
mvn archetype:generate
出現(xiàn)腳手架列表:
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)
按照提示,輸入下面幾項(xiàng)內(nèi)容:
groupId: 你要?jiǎng)?chuàng)建的項(xiàng)目的groupId
artifactId: 你要?jiǎng)?chuàng)建的項(xiàng)目的artifactId
version: 項(xiàng)目版本號(hào)
package: 項(xiàng)目基礎(chǔ)包路徑
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] ------------------------------------------------------------------------
最終得到項(xiàng)目。
或者可以使用一條命令快速生成:
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
如果是別人發(fā)布到私服,你通過(guò)私服來(lái)創(chuàng)建的話。
將私服地址配置到setting.xml中。
配置mirror或者repository均可。
項(xiàng)目配置通過(guò)腳手架得到的項(xiàng)目需要簡(jiǎn)單的配置部分內(nèi)容。
日志路徑項(xiàng)目日志路徑的配置文件在:conf/config/logback.xml 中,自行更改一個(gè)可以使用的日志路徑。
數(shù)據(jù)庫(kù)初始項(xiàng)目的dal層是有初始代碼的,需要用到一張表:t_demo
表結(jié)構(gòu)在 dal/src/main/resources/test.sql 中。
數(shù)據(jù)庫(kù)的配置文件在 conf/config/application.properties
我這里沒(méi)有配置到 conf/filter 下,如果你們需要不同環(huán)境,請(qǐng)將配置放置到filter目錄的不同文件內(nèi),assembly打包模塊會(huì)將filter中的文件填充到config中。
項(xiàng)目啟動(dòng)配置更改完畢后,下面開(kāi)始編譯啟動(dòng)。
mvn clean package
啟動(dòng)完成,將 target/${artifactId}.war 文件拷貝到 tomcat 的webapps下,啟動(dòng)tomcat即可。
項(xiàng)目默認(rèn)使用的jdk 1.8編譯。
訪問(wèn):
http://localhost:8080/${artifactId}/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67493.html
摘要:就和是應(yīng)用的腳手架一樣,是分布式和集群應(yīng)用的腳手架。是由一個(gè)一個(gè)的微服務(wù)組成,而這些微服務(wù)都是在注冊(cè)中心管理起來(lái)的。為了降低維護(hù)成本,我們引入了分布式配置服務(wù)的概念。 就和 springboot 是 web 應(yīng)用的腳手架一樣, springcloud 是分布式和集群應(yīng)用的腳手架。 但是并不是所有的同學(xué)都有接觸過(guò)分布式和集群,所以為了讓學(xué)習(xí)曲線變得緩和,站長(zhǎng)按照如下順序展開(kāi) spring...
摘要:授權(quán)框架使第三方應(yīng)用程序來(lái)獲取對(duì)服務(wù)的有限訪問(wèn)機(jī)會(huì)。無(wú)論是通過(guò)編排資源所有者和服務(wù)之間的交互批準(zhǔn)的資源所有者,或通過(guò)允許第三方應(yīng)用程序來(lái)獲取自己的訪問(wèn)權(quán)限。 SpringCloud打造微服務(wù)平臺(tái)--概覽 簡(jiǎn)述 SpringCloud是什么 Spring Boot和SpringCloud是什么關(guān)系 Spring Boot是Spring的一套快速WEB開(kāi)發(fā)的腳手架,可建立獨(dú)立的Sprin...
摘要:為函數(shù)計(jì)算設(shè)置環(huán)境變量必填上傳到的必填上傳到的必填上傳到的。另外,按照福布斯雜志的統(tǒng)計(jì),在商業(yè)和企業(yè)數(shù)據(jù)中心的典型服務(wù)器僅提供的平均最大處理能力的輸出。函數(shù)計(jì)算就是這里的膠水。 摘要: 使用 puppeteer 結(jié)合函數(shù)計(jì)算,可以快速的構(gòu)建彈性的服務(wù)完成各種功能,包括:生成網(wǎng)頁(yè)截圖或者 PDF、高級(jí)爬蟲(chóng),可以爬取大量異步渲染內(nèi)容的網(wǎng)頁(yè)、模擬鍵盤輸入、表單自動(dòng)提交、登錄網(wǎng)頁(yè)等,實(shí)現(xiàn) U...
摘要:是一個(gè)能夠幫助開(kāi)發(fā)者極速搭建基于微服務(wù)架構(gòu)的應(yīng)用程序,用最小的代碼實(shí)現(xiàn)常見(jiàn)的業(yè)務(wù)的框架。下面我們用分鐘時(shí)間來(lái)體驗(yàn)一下。或全局安裝,是一個(gè)幫助你快速生成模板項(xiàng)目的命令行工具。 weroll是一個(gè)能夠幫助開(kāi)發(fā)者極速搭建基于微服務(wù)架構(gòu)的Node.js應(yīng)用程序,用最小的代碼實(shí)現(xiàn)常見(jiàn)的web業(yè)務(wù)的框架。weroll基于MongoDB,Redis,Express 4.x以及APIServer(基于...
閱讀 936·2021-10-13 09:48
閱讀 3934·2021-09-22 10:53
閱讀 3126·2021-08-30 09:41
閱讀 1954·2019-08-30 15:55
閱讀 2933·2019-08-30 15:55
閱讀 1851·2019-08-30 14:11
閱讀 2214·2019-08-29 13:44
閱讀 776·2019-08-26 12:23