成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

搭建腳手架的一些經驗,你學到了嗎?

開發(fā) 開發(fā)工具
Spring內部的工具類和apache common包的工具類已經足夠應付大部分情況,如果真的不滿足再考慮去寫工具類,工具類解決的一定是局部問題,不要把業(yè)務功能相關的東西封裝成工具類。

印象中有些日子沒有寫文章了,最近一直在放飛自我,今天和大家分享的一些在搭建腳手架和編程中的一些實踐原則。所有目標都是“清晰架構分層”。

使用統(tǒng)一的依賴管理

這種方式是基于我多年來的實踐。最開始我也將項目類庫及其版本隨意的管理,大部分情況下它們能夠正常的工作,遇到版本升級和依賴沖突就很頭疼。于是模仿一些知名開源的依賴的管理,定制自己的BOM,就像這樣:

<dependencyManagement> 
<dependencies>
<dependency>
<groupId>cn.felord.</groupId>
<artifactId>my-bom</artifactId>
<version>1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

這樣你的依賴管理將非常清晰, 在升級第三方依賴或者增減依賴的時候,只需要升級這個依賴的版本即可。

約定大于配置

眾所周知Spring Boot的一個重要的特點就是約定大于配置。但是我在一些開源腳手架和一些項目中看到的卻不是延續(xù)這一思想,用了大量的代碼實現(xiàn)了一些可有可無的自定義配置。比如我在某個項目的Spring Security依賴中看到,自定義了所有的默認配置,將簡單的問題復雜化卻收效甚微,默認提供的PasswordEncoder不好用嗎?能復用就復用,用最少的配置解決問題。

MVC分工應該專注和簡潔

控制器

關于控制器,也就是Controller,它更多的角色應該是一個協(xié)調者和委托者,而不承擔具體業(yè)務邏輯的執(zhí)行工作。控制器應該專注于HTTP層面的功能,比如參數(shù)的綁定處理,序列化和反序列化,具體的業(yè)務委托給下游的服務層。

還有一個點就是接口的命名風格要一致,還要有層次感和語義化。比如/api/user/{id}、/api/order/{id}、/api/order/user/{id}。

服務層

服務層我遇到的問題就是出口分散問題,很多同學訂單的出口可能根據(jù)某些原因分散在其它的服務層接口,而不是集中于OrderService中。大多數(shù)情況下,我覺得集中管理有利于后續(xù)的迭代維護,保證了各個Domain業(yè)務之間的相對獨立性。

還有一點,同一個Spring容器下服務層之間的相互調用容易引起依賴循環(huán)問題,比如UseService要調用OrderService查詢訂單,而OrderService可能又依賴了UserService,最好的辦法是服務層之間盡量不相互調用,去調用持久層的OrderMapper,當然一些功能性的接口服務例外,例如短信服務、三方接口這一類。

說到短信服務、三方接口,這一類穩(wěn)定的業(yè)務功能建議作為類庫集成,既方便管理又可重用。

工具類

Spring內部的工具類和apache common包的工具類已經足夠應付大部分情況,如果真的不滿足再考慮去寫工具類,工具類解決的一定是局部問題,不要把業(yè)務功能相關的東西封裝成工具類。

責任編輯:武曉燕 來源: 碼農小胖哥
相關推薦

2021-07-29 18:46:52

可視化類型圖形化

2022-09-27 08:28:54

云平臺云主機私有云

2021-09-03 06:46:34

MyBatis緩存后端

2024-08-12 15:44:06

2021-01-07 05:34:07

腳手架JDK緩存

2023-11-21 17:36:04

OpenFeignSentinel

2021-04-11 07:33:03

開發(fā)Vue技術棧js

2021-12-26 18:30:56

嵌入式ARM鏈接

2021-12-23 10:35:32

SpringCloud腳手架架構

2016-08-10 14:59:41

前端Javascript工具

2024-03-11 13:18:00

RustClap項目

2020-08-19 08:55:47

Redis緩存數(shù)據(jù)庫

2020-05-19 10:13:45

Java開發(fā)代碼

2023-10-16 08:55:43

Redisson分布式

2020-07-21 18:54:21

Rust類型轉換語言

2016-09-07 15:35:06

VueReact腳手架

2025-05-16 07:24:41

Springkafka腳手架

2021-04-28 16:10:48

開發(fā)腳手架 Spring

2023-04-10 07:40:36

GraphQLRest通信模式

2021-05-13 17:02:38

MDC腳手架日志
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜视频一区二区 | 欧美一区二区三区四区五区无卡码 | 精品九九 | 91精品国产乱码麻豆白嫩 | 久久久五月天 | 久久综合一区二区三区 | 国产精品久久久99 | 精品二三区| 亚洲午夜精品在线观看 | 精品videossex高潮汇编 | 日韩一区二 | 亚洲精品成人av久久 | 中文字幕第一页在线 | 一区二区三区日韩精品 | 二区中文字幕 | a爱视频 | 免费午夜视频在线观看 | 久久久婷婷 | 久久久国产一区二区三区四区小说 | 日韩av免费在线观看 | 日韩精品成人在线 | 国产日韩亚洲欧美 | 欧美一区二区成人 | 美国一级片在线观看 | 激情小说综合网 | 福利视频一区 | 91精品久久久久久久久久入口 | 久久精品国产亚洲夜色av网站 | 欧美精品一区三区 | 国产精品乱码一区二三区小蝌蚪 | 欧美视频免费在线 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 日韩av一区二区在线观看 | 求个av网址 | 成人一区二区三区在线观看 | 精品免费看 | 久热精品视频 | 在线成人| av网站免费在线观看 | 欧美日韩在线播放 | 亚洲三区在线观看 |