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

搭建腳手架的一些經(jīng)驗(yàn),你學(xué)到了嗎?

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

印象中有些日子沒(méi)有寫(xiě)文章了,最近一直在放飛自我,今天和大家分享的一些在搭建腳手架和編程中的一些實(shí)踐原則。所有目標(biāo)都是“清晰架構(gòu)分層”。

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

這種方式是基于我多年來(lái)的實(shí)踐。最開(kāi)始我也將項(xiàng)目類(lèi)庫(kù)及其版本隨意的管理,大部分情況下它們能夠正常的工作,遇到版本升級(jí)和依賴(lài)沖突就很頭疼。于是模仿一些知名開(kāi)源的依賴(lài)的管理,定制自己的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>

這樣你的依賴(lài)管理將非常清晰, 在升級(jí)第三方依賴(lài)或者增減依賴(lài)的時(shí)候,只需要升級(jí)這個(gè)依賴(lài)的版本即可。

約定大于配置

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

MVC分工應(yīng)該專(zhuān)注和簡(jiǎn)潔

控制器

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

還有一個(gè)點(diǎn)就是接口的命名風(fēng)格要一致,還要有層次感和語(yǔ)義化。比如/api/user/{id}、/api/order/{id}、/api/order/user/{id}。

服務(wù)層

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

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

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

工具類(lèi)

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

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)小胖哥
相關(guān)推薦

2021-07-29 18:46:52

可視化類(lèi)型圖形化

2022-09-27 08:28:54

云平臺(tái)云主機(jī)私有云

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

開(kāi)發(fā)Vue技術(shù)棧js

2021-12-26 18:30:56

嵌入式ARM鏈接

2021-12-23 10:35:32

SpringCloud腳手架架構(gòu)

2016-08-10 14:59:41

前端Javascript工具

2024-03-11 13:18:00

RustClap項(xiàng)目

2020-08-19 08:55:47

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

2020-05-19 10:13:45

Java開(kāi)發(fā)代碼

2020-07-21 18:54:21

Rust類(lèi)型轉(zhuǎn)換語(yǔ)言

2023-10-16 08:55:43

Redisson分布式

2016-09-07 15:35:06

VueReact腳手架

2025-05-16 07:24:41

Springkafka腳手架

2021-04-28 16:10:48

開(kāi)發(fā)腳手架 Spring

2021-05-13 17:02:38

MDC腳手架日志

2021-07-13 18:42:38

Spring Boot腳手架開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲天堂精品久久 | 99精品在线观看 | 97精品超碰一区二区三区 | 6080yy精品一区二区三区 | 国产清纯白嫩初高生视频在线观看 | 久久美女网| 一级片av| 欧美日韩大片 | 97精品国产97久久久久久免费 | 国产日韩一区 | 精品久久久久久久 | 免费观看一级毛片视频 | aaa大片免费观看 | 一区二区三区高清 | 99一区二区| 国精产品一品二品国精在线观看 | 亚洲精品日韩欧美 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品久久久久久久7电影 | 亚洲人久久 | 成年女人免费v片 | 欧美4p | 污视频免费在线观看 | 亚洲欧洲精品一区 | 中文字幕在线一区二区三区 | 日韩中文字幕高清 | 免费在线播放黄色 | 水蜜桃久久夜色精品一区 | 西西裸体做爰视频 | 国产视频2021 | 中文字幕不卡在线观看 | 免费毛片在线 | 91精品国产综合久久婷婷香蕉 | 一级毛片视频 | 91免费电影 | 国产一级电影网 | 一区二区三区日韩精品 | 久久久久久毛片免费观看 | 成人免费在线观看视频 | 97在线观看 | 久久99久久98精品免观看软件 |