項(xiàng)目的工具包,以功能分包,功能之間盡量減少相互依賴,每個(gè)功能作為最小單元供服務(wù)依賴。
Try to reduce mutual dependence between functions and functions. Each function is used as the minimum unit for service dependencies.
項(xiàng)目地址: GitHub https://github.com/tf2jaguar/microcosm
參考文尾的 各模塊使用建議
講在前邊spring-boot
類(lèi)的項(xiàng)目的一些增強(qiáng),如果你的項(xiàng)目不是用spring-boot
開(kāi)發(fā)的,那么它對(duì)你的用處可能沒(méi)有那么大參考: guideline
父版本添加版本控制最新版本(參考本文的發(fā)版歷史) io.github.tf2jaguar.micro micro-logging ${revision} io.github.tf2jaguar.micro micro-apollo ${revision} io.github.tf2jaguar.micro micro-qconf ${revision} io.github.tf2jaguar.micro micro-distribute ${revision} io.github.tf2jaguar.micro micro-core ${revision} io.github.tf2jaguar.micro micro-codec ${revision} io.github.tf2jaguar.micro micro-except ${revision} io.github.tf2jaguar.micro micro-micro-mybatis-plus ${revision}
api模塊增加依賴這里主要增加一些核心類(lèi)庫(kù),包括但不限于出入?yún)?shù)封裝 InputMessage, OutputMessage,
服務(wù)異常 ServerException,
業(yè)務(wù)異常 BusinessException,
核心異常枚舉 ErrorEnums
io.github.tf2jaguar.micro micro-core
自定義服務(wù)異常枚舉你可以通過(guò)實(shí)現(xiàn)ExceptionEnums
接口,來(lái)定義自己的服務(wù)異常枚舉,用來(lái)適配服務(wù)異常、業(yè)務(wù)異常。兩種異常在統(tǒng)一異常捕獲模塊,會(huì)產(chǎn)生不一樣的效果哦
public enum GmmpErrorCodes implements ExceptionEnums {// 異常
INTERNAL_EXCEPT(10000, "系統(tǒng)內(nèi)部異常"),
INVALID_SIGN(10001, "請(qǐng)求加密協(xié)議錯(cuò)誤"),
INVALID_IP(10002, "請(qǐng)求IP地址異常"),
INVALID_DATA(10003, "數(shù)據(jù)錯(cuò)誤"),
INVALID_PARAMS(10004, "參數(shù)錯(cuò)誤"),
INVALID_CITY_ID(10005, "無(wú)效的城市編號(hào)"),
INVALID_ENTERPRISE_ID(10006, "無(wú)效的企業(yè)編號(hào)"),
// …… 省略部分
;
private int code;
private String message;
public static final int MODULE = 200;
GmmpErrorCodes(int code, String message) {this.code = code;
this.message = message;
}
@Override
public int code() {return this.code;
}
@Override
public String message() {return this.message;
}
}
common模塊增加依賴這個(gè)模塊主要是通用能力的封裝,包括但不限于調(diào)用第三方服務(wù)、通用工具類(lèi)處理
此處增加 出入?yún)?shù)封裝依賴(qconf適配的依賴)
配置模塊依賴io.github.tf2jaguar.micro micro-codec
如果你的服務(wù)使用qconf
而不是nacos
進(jìn)行服務(wù)發(fā)現(xiàn),那么你還需要添加以下依賴
io.github.tf2jaguar.micro micro-qconf
main模塊添加依賴這個(gè)模塊是整個(gè)服務(wù)的啟動(dòng)模塊,是springboot
項(xiàng)目的啟動(dòng)類(lèi)所在的模塊
這里添加日志處理、apollo配置中心、統(tǒng)一異常捕獲的依賴
配置模塊依賴io.github.tf2jaguar.micro micro-logging io.github.tf2jaguar.micro micro-apollo io.github.tf2jaguar.micro micro-except
發(fā)版日歷最新發(fā)版及調(diào)整參考: version
最新版本1.1.3.RELEASE
更新日歷 1.1.3.RELEASE發(fā)布日期:2022-06-16
發(fā)布日期:2021-07-02
發(fā)布日期:2021-07-02
發(fā)布日期:2021-07-01
ExceptionEnums
如內(nèi)置的常用異常狀態(tài)枚舉的實(shí)現(xiàn)方式public enum ErrorEnums implements ExceptionEnums
;封裝了簡(jiǎn)單的分頁(yè)請(qǐng)求入?yún)⒑头祷貐?shù),封裝了接口交互的出入?yún)?shù)格式類(lèi)(通過(guò)micro-codec
模塊完成出入?yún)?shù)自動(dòng)封裝、解封裝)feign
調(diào)用的出入?yún)?shù)駝峰轉(zhuǎn)換;實(shí)現(xiàn)了對(duì)http
調(diào)用出入?yún)?shù)駝峰轉(zhuǎn)換,入?yún)?shù) params 封裝,出參數(shù)code、data、message
封裝;實(shí)現(xiàn)了對(duì)swagger
展示中入?yún)?shù)、出參數(shù)封裝ServerException
,打印error日志,返回接口錯(cuò)誤 ;攔截業(yè)務(wù)異常BusinessException
,不打印error日志,只返回接口錯(cuò)誤 ;攔截參數(shù)綁定異常BindException
,打印error日志,返回接口錯(cuò)誤 ;攔截方法參數(shù)異常MethodArgumentNotValidException
,打印error日志,返回接口錯(cuò)誤 ;攔截全局異常Exception
,打印error日志,返回接口錯(cuò)誤發(fā)布日期:2021-05-13
發(fā)布日期:2021-05-13
http請(qǐng)求
的出入?yún)?shù)記錄,針對(duì)每個(gè)request
的api日志
用唯一的session_id
進(jìn)行區(qū)分;使用logback記錄日志、記錄all_log、error_log、api_log、access_log
的日志并按照天做切分apollo
配置變更自動(dòng)刷新;實(shí)現(xiàn)了對(duì)apollo
日志級(jí)別調(diào)整后自動(dòng)刷新qconf
中獲取服務(wù)器列表,供給ribbon
遠(yuǎn)程調(diào)用micro-logging
模塊的 pom 依賴micro.logging.api.ignore=
忽略日志打印http請(qǐng)求
的出入?yún)?shù)記錄,針對(duì)每個(gè)request
在日志中有唯一的session_id
進(jìn)行區(qū)分micro-apollo
模塊的 pom 依賴apollo
配置變更自動(dòng)刷新apollo
日志級(jí)別調(diào)整后自動(dòng)刷新feign
調(diào)用的模塊中添加micro-qconf
模塊的 pom 依賴qconf
中獲取服務(wù)器列表,供給ribbon
遠(yuǎn)程調(diào)用micro-distribute
模塊的 pom 依賴micro.distribute.machine-list=
指定當(dāng)前機(jī)器集群(單機(jī)時(shí)無(wú)需配置,默認(rèn)1),用來(lái)計(jì)算分布式id生成的機(jī)器id;micro.distribute.data-center-id=
指定當(dāng)前數(shù)據(jù)中心id編號(hào)(單機(jī)時(shí)無(wú)需配置,默認(rèn)1),用來(lái)計(jì)算分布式id生成的數(shù)據(jù)中心idmicro-core
模塊的 pom 依賴ExceptionEnums
如內(nèi)置的常用異常狀態(tài)枚舉的實(shí)現(xiàn)方式public enum ErrorEnums implements ExceptionEnums
micro-codec
模塊完成出入?yún)?shù)自動(dòng)封裝、解封裝)micro-codec
模塊的 pom 依賴feign
調(diào)用的出入?yún)?shù)駝峰轉(zhuǎn)換http
調(diào)用出入?yún)?shù)駝峰轉(zhuǎn)換,入?yún)?shù)params
封裝,出參數(shù)code、data、message
封裝swagger
展示中入?yún)?shù)、出參數(shù)封裝micro-except
模塊的 pom 依賴ServerException
打印error日志,返回接口錯(cuò)誤BusinessException
不打印error日志,只返回接口錯(cuò)誤BindException
打印error日志,返回接口錯(cuò)誤MethodArgumentNotValidException
打印error日志,返回接口錯(cuò)誤Exception
打印error日志,返回接口錯(cuò)誤你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧