国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于spring boot微服務(wù)架構(gòu)的RS10系統(tǒng)管理

2021-02-24 10:13楊英櫻喬運華班玉榮
制造業(yè)自動化 2021年12期
關(guān)鍵詞:菜單賬號頁面

楊英櫻,喬運華,班玉榮

(北京機械工業(yè)自動化研究所有限公司,北京 100120)

0 引言

RS10系統(tǒng)管理子系統(tǒng)是整個RS10系統(tǒng)正常運行的基礎(chǔ),可以選擇不同的操作系統(tǒng)和數(shù)據(jù)庫,可以設(shè)置個性化菜單,可以為其他子系統(tǒng)提供權(quán)限理,是系統(tǒng)管理員的好助手,是RS10系統(tǒng)的入口,更是RS10系統(tǒng)不可或缺的一部分。

之前的RS10版本存在以下問題:

采用客戶端發(fā)送請求的方式存在很多弊端,比如JSP只能在支持java的管web服務(wù)器中運行,無法使用nginx提升并發(fā)性能、服務(wù)器收到的請求太多,壓力太大,頁面響應(yīng)慢、前后端不分離,修改時需要雙方協(xié)同開發(fā),效率低下。

系統(tǒng)管理子系統(tǒng)在配置頁面以及修改頁面時,每個需要做授權(quán)的頁面、驗證的頁面、權(quán)限校驗的頁面等邏輯相同的頁面都需要寫同樣的過濾程序,同樣的驗證程序,代碼重復(fù)率高,代碼復(fù)用度低,不符合面向切面編程(AOP)的思想。

基于上述問題我們采用了spring boot微服務(wù)架構(gòu)和面向切面編程的思想,即把相同的業(yè)務(wù)邏輯抽象成模塊。通過采取這樣的方式,我們達成了以下效果:

1)瀏覽器發(fā)送請求后直達HTML頁面,通過ajax調(diào)用服務(wù)端口產(chǎn)生數(shù)據(jù),實現(xiàn)前后端真正的解耦,前后端分離;

2)在大并發(fā)情況下,我可以同時水平擴展前后端服務(wù)器,可以將除了接口以外的其他所有http請求全部轉(zhuǎn)移到前端nginx上。

3)把授權(quán)、驗證等相關(guān)業(yè)務(wù)抽象出來作為模型化可以實現(xiàn)代碼復(fù)用,提升效率,在需要用到權(quán)限校驗的地方、數(shù)據(jù)驗證的地方調(diào)用模型的公用方法處理即可。

4)模型是可配置的,可以動態(tài)調(diào)整權(quán)限校驗邏輯一處修改處處生效,極大的提高了效率。

1 Spring Boot與Ext JS介紹

本系統(tǒng)管理以SpringBoot作為主要核心框架,以ExtJs作為UI框架,基于B/S結(jié)構(gòu)上支持多種數(shù)據(jù)庫,以MyBatis作為數(shù)據(jù)持久層框架,用Log4j來記錄日志,以Maven進行項目管理框架的開發(fā)。

1.1 Spring Boot

Spring框架是 一種開源應(yīng)用框架。它的核心主要為:控制反轉(zhuǎn)(IOC)和面向切面(AOP)這兩個概念。

IoC是提供具有控制反轉(zhuǎn)特性的容器,它可以解決創(chuàng)建了許多重復(fù)對象,造成大量資源浪費;更換實現(xiàn)類需要改動多個地方;創(chuàng)建和配置組件工作繁雜,給組件調(diào)用方帶來極大不便等問題

AOP就是面向橫向切面的編程。它可以解決切面邏輯編寫繁瑣,有多少個業(yè)務(wù)方法就需要編寫多少次的問題。

Spring Boot是發(fā)展在Spring的基礎(chǔ)上,操作上更加簡便,因為它可以根據(jù)jar包和類自動配置Bean,極大的簡化了應(yīng)用程序初始搭建和開發(fā)過程。配置文件少了、節(jié)約了大量的開發(fā)時間并提高了生產(chǎn)力。對整個團隊的開發(fā)及維護來說,避免了編寫XML配置和注釋等。

不僅如此,Spring Boot內(nèi)嵌了servlet容器,從而降低了對環(huán)境的要求,只需執(zhí)行java-jar xx.jar命令就可以獨立運行Spring Boot項目,并且還可以對其進行監(jiān)控。

1.2 ExtJS

ExtJS是一款功能非常強大的用來開發(fā)前端界面的的JS框架。它具備一套完整的組件庫、支持多種強大功能,主要用于創(chuàng)建前端用戶界面,是瀏覽器里的桌面級UI庫。開發(fā)者可以通過ExtJS提供的強大組件迅速的開發(fā)出強大美觀的軟件界面。

2 系統(tǒng)管理設(shè)計

系統(tǒng)管理模塊提供業(yè)務(wù)系統(tǒng)功能管理,使系統(tǒng)管理員可以為系統(tǒng)賬號配置功能權(quán)限及菜單權(quán)限,是平臺運行的基礎(chǔ)。系統(tǒng)功能模塊圖如圖1所示:

圖1

但是其中的模塊管理存在很多的重復(fù)性邏輯代碼,在多個邏輯過程中有重復(fù)的操作行為,比如授權(quán)賬號時每個需要做權(quán)限校驗的頁面都需要寫同樣的權(quán)限過濾程序和同樣的權(quán)限驗證程序代碼,很繁瑣。所以我們基于面向切面編程的編程思想,針對業(yè)務(wù)處理過程中的切面進行模型化,之后調(diào)用模型的公用方法進行處理,以獲得邏輯過程中各部分之間低耦合性的隔離效果。

2.1 模型設(shè)計

通用服務(wù)平臺支持業(yè)務(wù)留痕模型、流程驅(qū)動模型、業(yè)務(wù)授權(quán)模型、數(shù)據(jù)和理性校驗?zāi)P汀I(yè)務(wù)數(shù)據(jù)結(jié)轉(zhuǎn)模型支持、消息推送模型支持、第三方數(shù)據(jù)交互模型、算法庫模型。

每一種模型都需要先定義通用對象類型,比如業(yè)務(wù)授權(quán)模型中,首先需要定義通用授權(quán)對象類型,供功能授權(quán)和業(yè)務(wù)授權(quán)模型選擇使用。內(nèi)置數(shù)據(jù)包括賬號授權(quán)、角色授權(quán)、組織授權(quán)、崗位授權(quán)。通過業(yè)務(wù)授權(quán)模型定義來進行開發(fā)業(yè)務(wù)授權(quán),調(diào)用通用授權(quán)方法,完成授權(quán);業(yè)務(wù)權(quán)限校驗時,可以調(diào)用通用權(quán)限查詢方法,獲取查詢結(jié)果。查詢時,通用查詢模型需要封裝成動態(tài)查詢條件,匹配該條件加上頁面?zhèn)鬟f的篩選條件得到查詢條件,封裝通用查詢頁面,關(guān)聯(lián)查詢的方法。

通用服務(wù)平臺詳細功能如圖2所示。

圖2

2.1.1 授權(quán)模型

授權(quán)模型是用來進行頁面中用戶、角色、菜單直接的權(quán)限配置的。

首先給做授權(quán)業(yè)務(wù)的頁面定義一個授權(quán)頁面號,用于唯一標識一個模型。然后根據(jù)數(shù)據(jù)字典建立授權(quán)結(jié)果表,根據(jù)實際業(yè)務(wù)場景定義授權(quán)模型。授權(quán)結(jié)果表中的的業(yè)務(wù)字段與模型明細中的業(yè)務(wù)字段要一一對應(yīng)。授權(quán)模型定義完成后生成針對授權(quán)表的新增、修改、刪除方法,各個業(yè)務(wù)字段的望遠鏡,針對于業(yè)務(wù)原表的檢索方法。根據(jù)授權(quán)頁面號從授權(quán)模型頭表中查詢到唯一記錄,獲取該授權(quán)頁面對應(yīng)的授權(quán)結(jié)果表名和需要修改的權(quán)限記錄的所有字段名及對應(yīng)值,從授權(quán)模型配置表中查找當(dāng)前系統(tǒng)中該授權(quán)頁面對應(yīng)模型所使用的授權(quán)對象類型。通用方法自動獲取當(dāng)前頁面的表單信息對應(yīng)到授權(quán)結(jié)果表的各個字段,執(zhí)行數(shù)據(jù)保存操作寫入授權(quán)結(jié)果表。要求結(jié)果表的字段與頁面的各個字段保持一致。

如果是賬號授權(quán),則根據(jù)授權(quán)頁面號查詢到唯一記錄,再從授權(quán)結(jié)果表中,查詢授權(quán)對象類型為賬號授權(quán)的,權(quán)限信息如果是其他授權(quán),則需要先從授權(quán)對象類型表中查找該授權(quán)對象類型對應(yīng)的關(guān)聯(lián)表名,再從關(guān)聯(lián)表查詢當(dāng)前賬號對應(yīng)的授權(quán)對象類型,最后從授權(quán)結(jié)果表中查詢授權(quán)對象類型對應(yīng)的所有權(quán)限信息

2.1.2 授權(quán)模型流程圖

如圖3所示。

圖3 授權(quán)模型流程圖

2.1.3 驗證模型

驗證模型是可以進行數(shù)據(jù)驗證并對異常進行合理反饋的。

首先需要對驗證模型進行定義,針對一個功能的保存或確認等操作,可以創(chuàng)建一個用于驗證數(shù)據(jù)合理性的后臺驗證模型,每一個驗證項可作為驗證模型的明細;可實現(xiàn)選擇存放模型庫、模型另存為。

根據(jù)前臺傳入的驗證參數(shù),在和事物開啟后提交前,分別進行預(yù)先驗證和結(jié)果驗證,按順序號規(guī)則循環(huán)處理各驗證項的驗證。首先封裝驗證項驗證數(shù)據(jù),然后根據(jù)匹配條件取數(shù)據(jù)庫中的驗證項驗證數(shù)據(jù),最后根據(jù)控制規(guī)則進行數(shù)據(jù)驗證判定。當(dāng)中的異常數(shù)據(jù)進行后臺異常處理。

2.1.3 模型驗證流程圖

如圖4所示。

圖4 模型驗證流程圖

2.2 基本功能設(shè)計

2.2.1 系統(tǒng)參數(shù)設(shè)置

系統(tǒng)參數(shù)設(shè)置主要是設(shè)置系統(tǒng)的基本運行參數(shù),包括登錄方式的管理、文件類型的限制、是否開啟密碼驗證、是否開啟三員管理、是否開啟日志記錄等。日志記錄包含了用戶日志管理、程序訪問日日志管理、權(quán)限日志管理和清理日志的功能。除此之外,還需要定義通用望遠鏡模板和管理維護平臺中的所有子系統(tǒng)。

2.2.2 菜單管理設(shè)計

菜單管理使得用戶可以DIY屬于自己的菜單,可以選擇自己想要的功能,整個系統(tǒng)更加的靈活,用戶可以根據(jù)個人偏好實現(xiàn)定制的菜單。菜單管理詳細功能如圖5所示:

圖5

2.2.3 角色管理設(shè)計

角色信息查詢可以查詢平臺中的所有角色信息。角色用戶授權(quán)用來完成角色和用戶的綁定關(guān)系,角色管理詳細功能如圖6所示。

圖6

2.2.4 用戶管理設(shè)計

用戶信息維護可完善賬號的基本信息和賬號關(guān)聯(lián)信息,通過用戶類型管理可以管理并維護所有賬號類型。用戶通過用戶角色授權(quán)完成用戶和角色的綁定。用戶管理詳細功能如圖7所示。

圖7

2.2.5 權(quán)限管理設(shè)計

權(quán)限管理具有角色菜單權(quán)限管理、崗位菜單權(quán)限管理和反向授權(quán)、用戶菜單權(quán)限管理的功能。權(quán)限管理主要用來實現(xiàn)角色與菜單權(quán)限綁定和用戶與菜單權(quán)限的綁定。其中,角色和賬號的分配可以維護平臺賬號和角色的關(guān)聯(lián)信息,菜單授權(quán)可以實現(xiàn)平臺賬號與菜單權(quán)限的關(guān)聯(lián)信息,實現(xiàn)授權(quán)功能。按賬號類型分組,對賬號分配角色,一個賬號可以分配多個角色。權(quán)限管理詳細功能如圖8所示。

圖8

3 結(jié)語

采用微服務(wù)架構(gòu)的RS10系統(tǒng)管理將各個模塊分割成小型的獨立功能,每個微服務(wù)按照自己的流程運行,開發(fā)團隊只要部署自己的應(yīng)用即可,減緩了部署的時間;易于開發(fā)和維護,對于開發(fā)人員來說,他們可以用更高的質(zhì)量水平更快地開發(fā)獨立的功能,這樣提高了團隊開發(fā)的效率;并且可擴展性更強,增加了一些具有獨立功能的底層應(yīng)用的可重用性。微服務(wù)是未來的趨勢。

猜你喜歡
菜單賬號頁面
刷新生活的頁面
彤彤的聊天賬號
施詐計騙走游戲賬號
中國新年菜單
我國社交媒體賬號的對外傳播之道——以“人民日報”Facebook賬號“特朗普訪華”議題報道為例
本月菜單
Google Play游戲取消賬號綁定沒有Google賬號也能玩
一個“公海龜”的求偶菜單
網(wǎng)站結(jié)構(gòu)在SEO中的研究與應(yīng)用
幾種頁面置換算法的基本原理及實現(xiàn)方法
咸宁市| 彭阳县| 奇台县| 永春县| 虎林市| 涟水县| 佛学| 百色市| 长汀县| 阜康市| 南安市| 利川市| 廊坊市| 夏津县| 措美县| 凤山市| 濉溪县| 姜堰市| 宾阳县| 康马县| 青海省| 宝应县| 阜新市| 任丘市| 静安区| 平泉县| 河西区| 大理市| 通化县| 商洛市| 阳新县| 永和县| 宝兴县| 阜南县| 石屏县| 梁山县| 平安县| 五峰| 镇康县| 山丹县| 邯郸市|