最近在對spring-boot和spring-cloud進行梳理,基於此,封裝了一套可開箱即用的業務底層框架。這套框架旨在提供可快速進行應用程式開發的,遮蔽一些基礎的底層的實現專注業務開發,同時幫助有興趣的同學學習交流。框架並沒有多複雜的東西,只是對當下spring-boot和spring-cloud時實踐的一些經驗總結。這會是乙個系列文章,會逐步把這個過程按章節來講,並附上已經開源的原始碼,原始碼在碼雲上,歡迎一起討論學習。很多人會講spring-boot和spring-cloud已經足夠簡單了為甚麼還要去做這件事呢,我的理解是這樣做有三個目的:a.簡化統一配置,避免重複勞動在每個專案都要幹同樣的事;b.建設團隊規範(要是一千個哈姆雷特怎麼玩),這點對團隊和企業的價值很大的;c.規範統一技術版本公升級和新技術引入,統一技術棧,降低團隊的學習成本,專注於業務開發。有時候不是看這件事情有複雜難度來定義他的價值,能把這件不是那麼難的事情很用心的去做好,它產生的價值事很大的。
我把這個框架生態分成三大塊:核心模組,功能整合模組,服務性模組。應用程式只要引入core模組就可以具備spring-boot和spring-cloud的基礎功能和框架提供的基礎封裝功能了,詳細的功能可以看圖或者原始碼。我一直認為好的框架一定是簡單,適用,演進的。 我實踐過很多把core這個拆分成好多個jar,看似拆的很細,逼格很高但是實際對真實的業務並不友好,作為業務方對這樣的基礎功能你給乙個包就好了。做的越少犯錯也就越少,但並不是犧牲框架的能力為代價,這是乙個很自然的過程,有時候我們總是想的太複雜,過度設計,拋開業務去談框架是耍流氓的。
1.核心模組:core首先要具備的功能是spring-boot和spring-cloud,其次是我們平常開發乙個應用都要幹的事(後面章節展開來講)。
2.功能整合模組:開發應用通常要具備的功能,但不是每個應用都需求具備的功能(後面章節展開來講)。
3.服務模組:開應用可能需求依賴的服務,但不是自己具備的或者說依賴他人具備是更好的事(後面章節展開來講)。
1.fw-boot:是不會對外提供的只是用來管理spring-boot的依賴和配置用的,會被core依賴,這樣對框架開發維護人員是比較好的
2.fw-cloud:是不會對外提供的只是用來管理spring-cloud的依賴和配置用的,會被core依賴,這樣對框架開發維護人員是比較好的。
3.fw-core:主要分成幾大塊:
core-web:對web服務api做了封裝提供了web應用程式都會用到基礎功能,比如:統一返回資料格式,統一異常,統一檢驗,在文件,統一上下文封裝,統一引數解析等,應用程式引入後就不必關注這些,可以專注於業務。可擴充套件
core-mybastis:對db層的封裝 可擴充套件
core-log:統一日誌輸出封裝
core-encrypt:加解密封裝,可擴充套件
core-common:基礎常量,基礎實體,基礎dao等,包括應用程式基礎工具類 可擴充套件
core-cache:基礎快取工具類提供,可擴充套件
5.fw-web: 框架服務測試web模組,示例了如何使用core框架和整合模組。
總結:本章只是大概介紹了下整個框架生態,再次重申這不是乙個多麼複雜的框架,只是把簡單的東西做的更好(槓精的世界我是領略過的)。後續將針對模組做詳細的講解(包括如何接入微服務和註冊中心nacos),開始擼**。(只談架構,不擼**,是沒有靈魂的)
一起來讀書351 應用密碼學 第一章 基礎知識
密碼學專業術語介紹 1.明文 plaintext 訊息 2.密文 ciphertext 被加密後的訊息 3.加密 encryption 用某種方法偽裝訊息以隱藏他的內容 4.解密 decryption 把密文轉變成明文的過程 5.無條件保密 unconditionally secure 不論密碼分析...
第一章 環境搭建
我使用的都是比較通用的編譯環境和編譯器,大家不必在這方面耗費太多心血,本著夠用就好的原則就行。我們可以在實踐中慢慢摸索,不斷完善我們的開發環境。目前作者使用的是windows系統,開發作業系統的編譯環境是linux的開源發行版 centos6。因此,作者選用了vmware虛擬機器來搭載centos6...
構建微服務 第一章 什麼是微服務 008總結
沒有銀彈 在我們結束這章之前 我們要承認微服務不是免費的午餐也不是銀彈,微服務有分布式系統的複雜性,而且我們也學習了如何管理 分布式系統的複雜性仍然是艱鉅的工作。如果從乙個單一系統的角度來看,處理部署 測試 監控會變得容易。而且我們也需要考慮如何伸縮我們的系統來改善系統的彈性。但是也會有些頭痛的問題...