999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Springboot最小系統的設計與實現

2021-03-22 02:53:17江健鋒徐振平
電腦知識與技術 2021年4期
關鍵詞:數據庫用戶系統

江健鋒 徐振平

摘要:Springboot是在Spring基礎上衍生的實用性框架,其目的并不是要替代Spring,而是為了改變Spring框架中煩瑣的配置項而誕生。其特點是更好地和第三方庫結合進行開發,減少大量的配置代碼,達到開箱即用的目的。而Springboot的最小系統架構,是在web開發環境中,把安全驗證、數據交互、錯誤返回等web程序基本要素結合成一個架構系統,不隨業務內容改變。而當項目業務內容發生改變時,只需要在該最小系統的基礎上,實現業務邏輯即可。

關鍵詞:Java;Springboot;Mybatis;SpringSecurity;Json

中圖分類號:TP311文獻標識碼:A

文章編號:1009-3044(2021)04-0062-02

1引言

作為Apache基金的頂級項目,Springboot框架的提出是為了解決傳統Spring框架配置煩瑣的問題,而且配備了一系列諸如SQL、NoSQL數據庫、分布式系統等開源項目作為擴展項,堪稱全家桶,是現在絕大多數互聯網單系統或分布式系統的必備框架。而傳統的基于Springboot框架的系統只是對Spring全家桶按需使用,沒有明確規劃,在后期會造成項目的結構混亂,例如:返回數據不統一造成前后端聯調復雜;缺乏全局錯誤處理,錯誤日志復雜,定位問題變得困難。所以,為了排除不同項目業務對系統造成的差異性,我們可以構建最小系統框架,方便項目的拓建,并且給團隊一個適應的編程規范。

2系統架構描述

2.1最小系統架構

如圖1,絕大多數系統架構核心必須包含三大模塊,與用戶相關的業務模塊;連接底層的數據管理模塊;以及用于中間協調系統的基礎功能模塊;就企業級而非個人的項目來說,除了業務模塊不一樣之外,基礎模塊在邏輯功能上是共通的。最小系統架構,其實就是構建系統的安全功能,數據交互封裝,全局異常處理,數據庫連接等模塊功能,同時避免受業務邏輯的干擾,成為脫離業務單獨運行的系統。下文將對系統的三個模塊進行剖析。

2.2系統采用技術

2.2.1基礎功能模塊

如圖2所示,對于基礎功能模塊來說,有三個功能是不可或缺的,分別是安全驗證,前后端數據交互,異常處理,下文將對這個功能逐一說明。

1)全局異常處理

眾所周知,用戶的輸入不可能完全按照程序員的意愿來進行;同時,程序員無法對程序運行的各種情況考慮的面面俱到,因此,運行時出現異常或者錯誤是很難避免的。如果把程序內部響應的錯誤直接返回給用戶,會給用戶造成疑惑。綜上,我們應該對程序所有可能發生的錯誤都進行捕捉,把錯誤信息封裝,挑選用戶能理解的部分進行返回,提高用戶體驗度,全局異常處理就顯得十分重要。

全局異常處理應用的是SpringMVC提供的組件增強注解@ControllerAdvice,以及捕捉系統異常的注解@ExceptionHandler來進行全局聲明,對于不同的類型,可以返回不同的消息。對應部分代碼如下:

@ControllerAdvice

@Slf4j

publicclassGlobalExceptionHandler {

// 捕獲運行時異常

@ExceptionHandler(RuntimeException.class)

@ResponseBody

publicJsonResulthandlerBusinessException(RuntimeException ex) {

log.error("錯誤: {}"ex.getErrMsg());

ex.printStackTrace();

returnJsonResult.failure(ex);

}

}

2)前后端數據封裝

JSON(JavaScript Object Notation)是一種廣泛應用的數據交換格式,其簡潔而又清晰的層次結構讓其逐漸取代XML稱為前后端格式交互的主要格式[1]。在Springboot的核心jar包spring-boot-starter-web中,默認封裝了JSON工具包,當前端對后臺進行請求的時候,可以設置返回的文本格式為JSON。但是JSON簡單清晰的特點只體現在數據傳輸方面,Springboot框架并沒有對返回的數據內容格式上做任何要求,即返回的JSON中,可以是一串文字,也可以是某種層次結構。

根據計算機網絡傳輸的知識,我們知道,當系統正常運轉并返回時,計算機狀態碼為200;服務器內部執行錯誤狀態碼會返回5xx來代表不同的錯誤狀態。我們可以結合全局異常處理的內容,不管用戶傳輸給我們的數據是什么,只要程序能夠接收,http攜帶的狀態碼都返回200,我們可以把程序的錯誤或者程序員自定義的錯誤內容封裝到JSON中,所以我們必須有一個代表狀態碼的code字段和中文解析message字段。除了錯誤返回之外,程序必須能夠正常執行并返回數據,返回數據的數據是一個對象,我們用data字段來表示。最終,前后端通用的JSON文本格式為。

{

code:狀態碼(數字),

msg:中文解析(字符串),

data:程序返回的數據(對象)

}

3)安全模塊

本文使用的安全模塊采用的是SpringSecurity框架,SpringSecurity是一款企業級的權限認證授權框架,作為Spring全家桶的一員,和Springboot具有很好的契合性。同時,安全模型的結構設計采用RBAC(Role-Based Access Control 基于角色的訪問控制)模型設計。文獻2通過提出一致性準則、安全性準則和可用性準則分別證明了RBAC模型安全特性與該三項準則安全特性相一致,證明了RBAC的可靠性[2]。

2.2.2 數據管理模塊

項目必須考慮后期的擴展性,而隨著業務數據量的激增,框架對數據的承受能力必須有很好的把握,或者說要有足夠的擴展性,在后期進行擴展。作為一個抽象的單系統,最小系統架構來說,最大化地減少系統負擔并且有足夠的擴展性,都是不可或缺的。圖3是數據管理模塊的抽象結構圖,其中不包含任何數據分析的模塊,只做數據管理功能。

1)ORM框架

如圖3所示,ORM(Object Relational Mapping,對象關系映射)框架,用于實現面向對象語言里不同類型系統的數據之間的轉換[3]。在Java語言中,JDK(Java development kit Java開發工具包)提供了數據庫映射數據的API,作為數據返還,ORM作為框架接收;底層需要數據庫驅動,為了提高數據庫復用率,提高系統吞吐率,我們可以使用數據庫連接池來進行并發優化。

基于Java語言的開源ORM框架有Hibernate和Mybatis,前者是全自動化的集成框架,包括數據映射,數據庫建表,增刪改查語言的自動生成;而Mybatis則是一個半自動框架,提供了大量接口供用戶調用,這種半自動化給了用戶很大的自由性,所以最小系統框架選擇使用Mybatis框架。

2)數據庫連接池

著名的數據庫連接池開源組件有Druid,c3p0,dbcp。本系統采用的數據庫連接池是阿里開源的Druid,相比于其他兩款數據庫連接池,Druid提供了強大的擴展和監控功能,在適應大數據方面,容錯率和性能上都相當的出色。

3總結

本文從框架的層面,分析和綜合了絕大多數程序架構的特點和共性,抽象化地提出了互聯網應用最小系統架構的概念。其特點是抽離了業務邏輯實現系統運行的最小化,同時保證了系統的可擴展性。

參考文獻:

[1] 百度.JSON[EB/OL].[2020-05-24].https://baike.baidu.com/item/JSON,2015-5-11.

[2] 熊厚仁,陳性元,張斌,等.基于RBAC的授權管理安全準則分析與研究[J].計算機科學,2015,42(3):117-123.

[3] 百度.ORM 對象關系映射[EB/OL]. [2020-05-24].https://baike.baidu.com/item對象關系映射/311152?fromtitle=ORM&fromid=3583252&fr=aladdin.

【通聯編輯:代影】

猜你喜歡
數據庫用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 成人精品午夜福利在线播放| 国产成人凹凸视频在线| 久久亚洲中文字幕精品一区| 青草视频网站在线观看| 日韩在线永久免费播放| 日韩 欧美 小说 综合网 另类| 最新国产成人剧情在线播放| 精品国产一区91在线| 免费无码又爽又黄又刺激网站 | 亚洲一区无码在线| 91在线丝袜| 国产黄色爱视频| 国产欧美日韩综合在线第一| 青青国产成人免费精品视频| 日本久久免费| 国产日本欧美亚洲精品视| 欧美成人亚洲综合精品欧美激情| 久久久国产精品无码专区| 在线观看国产黄色| 亚洲乱强伦| 伊人久久青草青青综合| 精品国产乱码久久久久久一区二区| 成人福利免费在线观看| 日韩大片免费观看视频播放| 天堂久久久久久中文字幕| 久久精品中文无码资源站| 91精品视频在线播放| 精品国产网站| 99久久精品国产麻豆婷婷| 91网在线| 偷拍久久网| 国产一级在线播放| 国内熟女少妇一线天| 九九热精品视频在线| 亚洲另类国产欧美一区二区| 亚洲国产综合精品中文第一 | 欧美激情视频一区| 国产日本欧美亚洲精品视| 国产主播一区二区三区| 国产综合精品日本亚洲777| 毛片最新网址| 国产综合日韩另类一区二区| 亚洲欧美一区二区三区图片 | 无码久看视频| 国产毛片高清一级国语 | 精品国产成人三级在线观看| 欧美区一区| 亚洲高清国产拍精品26u| 亚洲欧美综合在线观看| 91人人妻人人做人人爽男同| 日本人又色又爽的视频| 色欲综合久久中文字幕网| 国产精品一老牛影视频| 伊人久综合| 久久99热这里只有精品免费看| 69av在线| 久久精品国产999大香线焦| 国产又爽又黄无遮挡免费观看| 女人18一级毛片免费观看 | 在线观看免费人成视频色快速| 国产H片无码不卡在线视频| 伊人久久久大香线蕉综合直播| 欧美日韩精品一区二区视频| 任我操在线视频| 在线看片国产| 成人第一页| 成人年鲁鲁在线观看视频| 三级欧美在线| a天堂视频| 国产成人亚洲精品蜜芽影院| 一本一道波多野结衣一区二区| 97人妻精品专区久久久久| 日本欧美视频在线观看| 欧美一级高清视频在线播放| 国产午夜人做人免费视频| 四虎永久免费在线| 精品99在线观看| 丝袜久久剧情精品国产| 亚洲婷婷六月| 亚洲一区二区三区香蕉| 特级毛片免费视频| 亚洲一区黄色|