整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JKAS開發框架技術文檔2:配置—框架配置文件

          JKAS開發框架技術文檔2:配置—框架配置文件

          、框架配置文件

          [SERVER]

          #默認語言

          locale=zh_CN

          #是否禁用語言加載//如果是做api類的,禁語言加載,提升性能

          locale_enable=1

          #系統名

          site_name=JKAS

          #默認字符編碼

          charset=UTF-8

          #貨幣符號

          currency_symbol=¥

          #控制器映射包路徑

          app_package=test.z.app

          #默認后綴

          url_endwith=.do

          #url 別名是否開啟,開啟后需要在/data/alias文件配置好別名設置

          url_alias=0

          #是否使用https

          use_https=0

          #最大并發請求設置,0表示不限制

          max_requests=0

          # 最大用戶量設置,0表示不限制

          max_sessions=0

          #是否開啟模塊模式,開啟后,控制器包名要加上模塊名稱,同時語言路徑也需要加上模塊名稱,視圖模板路徑也需要加上模塊名稱

          module_enable=0

          #默認模塊

          module_default=default

          #模塊列表,該列表指定的模塊名,才啟用模塊功能,全部啟用的話,不設置或設置成為*

          module_list=test,test2

          #樣式域名

          css_domain=http://css.z.com

          #js域名

          js_domain=http://js.z.com

          #圖片域名

          img_domain=http://img.z.com

          #資源根目錄

          res_root_path=static

          #CSS資源域名

          rescss_domain=http://libcss.z.com

          #JS資源域名

          resjs_domain=http://libjs.z.com

          #圖片上傳保存路徑

          img_save_path=images


          [HTTP]

          ignoreVerifySSL=0//1為忽略驗證HTTPS證書有效性


          #session配置

          [SESSION]

          #是否開啟允許自定義session機制

          session_override=1

          #自定義session指定類,該自定義類必須繼承JkasSession

          session_class=test.z.session.MySession

          #default|redis|memcache,pass for redis

          session_type=memcache

          session_host=127.0.0.1:11211

          session_pass=123456

          session_maxinterval=1


          #定時任務

          [CRON]

          #定時任務的包名

          cron_package=test.z.cron

          #是否開啟定時任務

          cron_enable=1

          #是否開啟定時任務日志輸出,定時日志目錄為temp/logs/jkas_cron_年-月.log

          cron_log_enable=1


          [QUEUE]

          #是否啟用隊列

          queue_enable=1

          #隊列執行自定義類

          queue_class=test.z.queue.MyQueue

          #隊列執行間隔時間,單位微秒,1秒=1000微秒

          queue_interval=5000


          [SOCKET]

          #是否開啟socket

          socket_enable=1

          #是否啟用自定義socket

          socket_override=1

          #自定義socket的類,必須繼承SocketService

          socket_class=test.z.socket.MySocket

          #socket端口

          socket_port=9999

          #socket調用包名設置

          socket_package=test.z.socket


          [WEBSOCKET]

          #是否開啟websocket

          ws_enable=1

          #websocket端口

          ws_port=8888

          #websocket調用包名設置

          ws_package=test.z.websocket


          [RPC]

          #是否啟用RPC

          rpc_enable=1

          #RPC服務所在包名

          rpc_package=test.z.rpc

          #RPC端口

          rpc_port=9889


          [RMI]

          #是否啟用RMI

          rmi_enable=1

          #RMI服務所在包名

          rmi_package=test.z.rmi

          #RMI主機地址

          rmi_host=localhost

          #RMI端口

          rmi_port=9888


          [FILTER]

          #是否啟用過濾器

          filter_enabled=1

          #過濾字符串,多個用|分開

          filter_str=

          #過濾指定調用類設置,該類必須繼承Filters

          filter_class=test.z.filter.Test


          [LISTENER]

          #是否開啟監聽器

          listener_enable=1

          #監聽器指定調用類設置,該類必須繼承Listener

          listener_class=test.z.listener.Test


          [MAIL]

          #發郵件服務器地址

          smtp_host=smtp.qq.com

          #郵件端口

          smtp_port=465

          #郵件認證用戶

          smtp_user=421361697@qq.com

          #郵件認證密碼

          smtp_pass=************

          #郵件是否啟用ssl

          smtp_ssl=1

          #郵件是否開啟調試

          smtp_debug=0


          [UPLOAD]

          #默認最大上傳文件

          upload_max_size=1024

          #默認上傳類型

          upload_allow_type=.jpeg,.jpg,.png,.gif

          upload_deny_type=.exe,.java


          #cache config default|redis|memcache,pass for redis

          [CACHE]

          #緩存是否啟用

          cache_enable=1

          #緩存類型

          cache_type=default

          #緩存服務器地址及端口

          cache_host=192.168.54.233:6379

          #緩存服務器認證密碼

          cache_pass=123456

          #默認緩存有效時間(分鐘)

          cache_expired=30


          [VIEW]

          #是否啟用視圖,如果做api類應用,禁用視圖將提升性能

          view_enable=1

          #引擎引擎,支持beetl,thymeleaf,freemarker,velocity,默認beetl

          view_engine=beetl

          #視圖模板類型(后綴)

          view_tpl=html

          #視圖模板路徑

          view_path=themes

          #視圖模板主題

          view_theme=green


          [LOG]

          #是否開啟日志

          log_enable=1


          [DATABASE]

          #數據源類型,0為默認容器數據源,1為使用框架配置數據源,框架數據配置文件路徑為data/ds/數據源文件名

          ds_type=0

          #數據庫表前綴

          table_prefix=jkas_

          data_source=dbconfig //必須與resin或tomcat配置的數據源保持一致,如果用框架數據源,必須與框架數據源文件名一致

          #是否開啟數據庫集群

          db_cluster=1

          #集群用來寫的數據源設置,多個用逗號隔開,必須與resin或tomcat配置的數據源保持一致,如果用框架數據源,必須與框架數據源文件名一致

          data_source_write=dbconfigw

          #集群用來讀的數據源設置,多個用逗號隔開,必須與resin或tomcat配置的數據源保持一致,如果用框架數據源,必須與框架數據源文件名一致

          data_source_read=dbconfigr1,dbconfigr2

          #數據庫類型mysql sqlite oracle mssql 暫時只支持mysql和sqlite,非Mysql和sqlite數據庫需要自行寫完整的sql

          db_type=mysql

          #開啟自定義SQL語句功能

          db_custom_sql=1

          #配置自定義SQL文件所在目錄,SQL自定義文件與模型指定的表名同名,以.m為后綴

          db_custom_sql_dir=data/sql


          ;用戶整合配置

          [UCLIENT]

          #是否啟用,0 不啟用,1 啟用

          uc_enable=0

          #接口類型,1為數據庫接口,2為網絡接口

          uc_type=1

          #appid,要與用戶中心應用id一致

          uc_appid=234

          #通信密碼,要與用戶中心應用通信密碼保持一致

          uc_authkey=sldfdsfsdf

          #應用密鑰,要與用戶中心該應用的應用密鑰保持一致,留空將不進行密鑰簽名

          uc_prikey=XXXXXX

          #數據庫類型,暫時只支持mysql

          uc_db_type=mysql

          #用戶數據源

          uc_data_source=dbconfiguc //必須與resin或tomcat配置的數據源保持一致

          #是否開啟集群模式

          uc_db_cluster=1

          #寫數據源設置,多個用逗號隔開

          uc_data_source_write=dbconfigucw1,dbconfigucw2

          #讀數據源設置,多個用逗號隔開

          uc_data_source_read=dbconfigucr1,dbconfigucr2

          #用戶數據庫表前綴

          uc_table_prefix=jkas_

          #用戶中心接口域名

          uc_api=http://uc.z.com

          #用戶中心接口后綴

          uc_endwith=.do

          章來源:加米谷大數據

          目錄:

          • 1.pig
          • 2.zheng
          • 3.Cloud-Platform
          • 4.SpringBlade
          • 5.Guns

          一、 pig

          開源地址:https://gitee.com/log4j/pig

          基于Spring Cloud、OAuth2.0、Vue的前后端分離的系統。 通用RBAC權限設計及其數據權限和分庫分表 支持服務限流、動態路由、灰度發布、 支持常見登錄方式, 多系統SSO登錄。

          功能列表:

          完善登錄:賬號密碼模式、短信驗證碼模式、社交賬號模式均整合Spring security oAuth

          單點登錄:基于Srping security oAuth 提供單點登錄接口,方便其他系統對接

          用戶管理:用戶是系統操作者,該功能主要完成系統用戶配置。

          機構管理:配置系統組織機構,樹結構展現,可隨意調整上下級。

          菜單管理:配置系統菜單,操作權限,按鈕權限標識等。

          角色管理:角色菜單權限分配、設置角色按機構進行數據范圍權限劃分。

          動態路由:基于zuul實現動態路由,后端可配置化。

          灰度發布:自定義ribbon路由規則匹配多版本請求。

          終端管理:動態配置oauth終端,后端可配置化。

          字典管理:對系統中經常使用的一些較為固定的數據進行維護,如:是否等。

          操作日志:系統正常操作日志記錄和查詢;系統異常信息日志記錄和查詢。

          服務限流:多種維度的流量控制(服務、IP、用戶等)

          消息總線:配置動態實時刷新

          分庫分表:shardingdbc分庫分表策略

          數據權限: 使用mybatis對原查詢做增強,業務代碼不用控制,即可實現。

          文件系統: 支持FastDFS、七牛云,擴展API幾行代碼實現上傳下載

          消息中心:短信、郵件模板發送,幾行代碼實現發送

          聚合文檔:基于zuul實現 swagger各個模塊的實現

          代碼生成:前后端代碼的生成,支持Vue

          緩存管理:基于Cache Cloud 保證Redis 的高可用

          服務監控: Spring Boot Admin

          分布式任務調度: 基于elastic-job的分布式任務,zookeeper做調度中心

          zipkin鏈路追蹤: 數據保存ELK,圖形化展示

          pinpoint鏈路追蹤: 數據保存hbase,圖形化展示

          二、zheng

          開源地址:https://gitee.com/shuzheng/zheng

          基于Spring+SpringMVC+Mybatis分布式敏捷開發系統架構,提供整套公共微服務服務模塊:集中權限管理(單點登錄)、內容管理、支付中心、用戶管理(支持第三方登錄)、微信平臺、存儲系統、配置中心、日志分析、任務和通知等,支持服務治理、監控和追蹤,努力為中小型企業打造全方位J2EE企業級開發解決方案。

          三 、Cloud-Platform

          開源地址:https://gitee.com/minull/ace-securityCloud-Platform

          是國內首個基于Spring Cloud微服務化開發平臺,核心技術采用Spring Boot2以及Spring Cloud Gateway相關核心組件,前端采用vue-element-admin組件。具有統一授權、認證后臺管理系統,其中包含具備用戶管理、資源權限管理、網關API管理等多個模塊,支持多業務系統并行開發,可以作為后端服務的開發腳手架。代碼簡潔,架構清晰,適合學習和直接項目中使用。

          架構摘要

          服務鑒權通過JWT的方式來加強服務之間調度的權限驗證,保證內部服務的安全性。

          監控利用Spring Boot Admin 來監控各個獨立Service的運行狀態;利用Hystrix Dashboard來實時查看接口的運行狀態和調用頻率等。

          負載均衡將服務保留的rest進行代理和網關控制,除了平常經常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以幫我們進行正常的網關管控和負載均衡。其中擴展和借鑒國外項目的擴展基于JWT的Zuul限流插件,方面進行限流。

          服務注冊與調用基于Consul來實現的服務注冊與調用,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務時能與調用本地方法一樣的編碼體驗,開發者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。

          熔斷機制因為采取了服務的分布,為了避免服務之間的調用“雪崩”,采用了Hystrix的作為熔斷器,避免了服務之間的“雪崩”。

          四 、SpringBlade

          開源地址:https://gitee.com/smallc/SpringBladeSpringBlade 2.0 是一個基于 Spring Boot 2 & Spring Cloud Finchley & Mybatis 等核心技術,用于快速構建中大型系統的基礎框架。和bootdo有相似之處。

          主要特性&&變化

          采用前后端分離的模式,前端單獨開源出一個框架:Sword,主要選型技術為React、Ant Design、Umi、Dva

          后端采用SpringCloud全家桶,并同時對其基礎組件做了高度的封裝,單獨開源出一個框架:Blade-Tool

          Blade-Tool已推送至Maven中央庫,直接引入即可,減少了工程的臃腫,也可更注重于業務開發

          注冊中心選型Consul

          部署使用Docker或K8s + Jenkins

          使用Traefik進行反向代理

          踩了踩Kong的坑,有個基本的使用方案,但不深入,因為涉及到OpenResty。

          封裝了簡單的Secure模塊,采用JWT做Token認證,可拓展集成Redis等細顆粒度控制方案

          在2.0誕生之前,已經穩定生產了近一年,經歷了從Camden -> Finchley的技術架構,也經歷了從fat jar -> docker -> k8s + jenkins的部署架構

          項目分包明確,規范微服務的開發模式,使包與包之間的分工清晰。

          五 、Guns

          開源地址:https://gitee.com/stylefeng/gunsGuns

          基于Spring Boot 2,致力于做更簡潔的后臺管理系統,完美整合springmvc + shiro + mybatis-plus + beetl,Guns項目代碼簡潔,注釋豐富,上手容易,同時Guns包含許多基礎模塊(用戶管理,角色管理,部門管理,字典管理等10個模塊),可以直接作為一個后臺管理系統的腳手架!同時提供spring cloud版本!

          Guns微服務版本

          Guns的核心是roses-kernel項目https://gitee.com/stylefeng-Roses/roses-kernel,提供對spring cloud的支持。

          Roses框架基于Spring Boot 2和Spring Cloud Finchley.RELEASE,整合Eureka + Hystrix + Ribbon + Feign + Zuul,更符合企業級的分布式和服務化解決方案,Roses擁有高效率的開發體驗,提供可靠消息最終一致性分布式事務解決方案,提供基于調用鏈的服務治理,提供可靠的服務異常定位方案(Log + Trace)等等,一個分布式框架不僅需要構建高效穩定的底層開發框架,更需要解決分布式帶來的種種挑戰!

          管理系統功能

          1.用戶管理 2.角色管理 3.部門管理 4.菜單管理 5.字典管理 6.業務日志 7.登錄日志 8.監控管理 9.通知管理 10.代碼生成(旗艦版目前還沒完成)

          項目特點

          基于SpringBoot,簡化了大量項目配置和maven依賴,讓您更專注于業務開發,獨特的分包方式,代碼多而不亂。

          完善的日志記錄體系,可記錄登錄日志,業務操作日志(可記錄操作前和操作后的數據),異常日志到數據庫,通過@BussinessLog注解和LogObjectHolder.me().set()方法,業務操作日志可具體記錄哪個用戶,執行了哪些業務,修改了哪些數據,并且日志記錄為異步執行,詳情請見@BussinessLog注解和LogObjectHolder,LogManager,LogAop類。

          利用beetl模板引擎對前臺頁面進行封裝和拆分,使臃腫的html代碼變得簡潔,更加易維護。

          對常用js插件進行二次封裝,使js代碼變得簡潔,更加易維護,具體請見webapp/static/js/common文件夾內js代碼。

          利用ehcache框架對經常調用的查詢進行緩存,提升運行速度,具體請見ConstantFactory類中@Cacheable標記的方法。

          controller層采用map + warpper方式的返回結果,返回給前端更為靈活的數據,具體參見com.stylefeng.guns.modular.system.warpper包中具體類。

          防止XSS攻擊,通過XssFilter類對所有的輸入的非法字符串進行過濾以及替換。

          簡單可用的代碼生成體系,通過SimpleTemplateEngine可生成帶有主頁跳轉和增刪改查的通用控制器、html頁面以及相關的js,還可以生成Service和Dao,并且這些生成項都為可選的,通過ContextConfig下的一些列xxxSwitch開關,可靈活控制生成模板代碼,讓您把時間放在真正的業務上。

          控制器層統一的異常攔截機制,利用@ControllerAdvice統一對異常攔截,具體見com.stylefeng.guns.core.aop.GlobalExceptionHandler類。

          頁面統一的js key-value單例模式寫法,每個頁面生成一個唯一的全局變量,提高js的利用效率,并且有效防止多個人員開發引起的函數名/類名沖突,并且可以更好地去維護代碼。

          業務日志記錄

          日志記錄采用aop(LogAop類)方式對所有包含@BussinessLog注解的方法進行aop切入,會記錄下當前用戶執行了哪些操作(即@BussinessLog value屬性的內容),如果涉及到數據修改,會取當前http請求的所有requestParameters與LogObjectHolder類中緩存的Object對象的所有字段作比較(所以在編輯之前的獲取詳情接口中需要緩存被修改對象之前的字段信息),日志內容會異步存入數據庫中(通過ScheduledThreadPoolExecutor類)。

          錄:

          • 1.pig
          • 2.zheng
          • 3.Cloud-Platform
          • 4.SpringBlade
          • 5.Guns

          一 pig

          開源地址:
          https://gitee.com/log4j/pig

          基于Spring Cloud、OAuth2.0、Vue的前后端分離的系統。 通用RBAC權限設計及其數據權限和分庫分表 支持服務限流、動態路由、灰度發布、 支持常見登錄方式, 多系統SSO登錄。

          功能列表:

          完善登錄:賬號密碼模式、短信驗證碼模式、社交賬號模式均整合Spring security oAuth

          單點登錄:基于Srping security oAuth 提供單點登錄接口,方便其他系統對接

          用戶管理:用戶是系統操作者,該功能主要完成系統用戶配置。

          機構管理:配置系統組織機構,樹結構展現,可隨意調整上下級。

          菜單管理:配置系統菜單,操作權限,按鈕權限標識等。

          角色管理:角色菜單權限分配、設置角色按機構進行數據范圍權限劃分。

          動態路由:基于zuul實現動態路由,后端可配置化。

          灰度發布:自定義ribbon路由規則匹配多版本請求。

          終端管理:動態配置oauth終端,后端可配置化。

          字典管理:對系統中經常使用的一些較為固定的數據進行維護,如:是否等。

          操作日志:系統正常操作日志記錄和查詢;系統異常信息日志記錄和查詢。

          服務限流:多種維度的流量控制(服務、IP、用戶等)

          消息總線:配置動態實時刷新

          分庫分表:shardingdbc分庫分表策略

          數據權限: 使用mybatis對原查詢做增強,業務代碼不用控制,即可實現。

          文件系統: 支持FastDFS、七牛云,擴展API幾行代碼實現上傳下載

          消息中心:短信、郵件模板發送,幾行代碼實現發送

          聚合文檔:基于zuul實現 swagger各個模塊的實現

          代碼生成:前后端代碼的生成,支持Vue

          緩存管理:基于Cache Cloud 保證Redis 的高可用

          服務監控: Spring Boot Admin

          分布式任務調度: 基于elastic-job的分布式任務,zookeeper做調度中心

          zipkin鏈路追蹤: 數據保存ELK,圖形化展示

          pinpoint鏈路追蹤: 數據保存hbase,圖形化展示

          二 zheng

          開源地址:
          https://gitee.com/shuzheng/zheng

          基于Spring+SpringMVC+Mybatis分布式敏捷開發系統架構,提供整套公共微服務服務模塊:集中權限管理(單點登錄)、內容管理、支付中心、用戶管理(支持第三方登錄)、微信平臺、存儲系統、配置中心、日志分析、任務和通知等,支持服務治理、監控和追蹤,努力為中小型企業打造全方位J2EE企業級開發解決方案。

          三 Cloud-Platform

          開源地址:
          https://gitee.com/minull/ace-securityCloud-Platform

          是國內首個基于Spring Cloud微服務化開發平臺,核心技術采用Spring Boot2以及Spring Cloud Gateway相關核心組件,前端采用vue-element-admin組件。具有統一授權、認證后臺管理系統,其中包含具備用戶管理、資源權限管理、網關API管理等多個模塊,支持多業務系統并行開發,可以作為后端服務的開發腳手架。代碼簡潔,架構清晰,適合學習和直接項目中使用。

          架構摘要

          服務鑒權通過JWT的方式來加強服務之間調度的權限驗證,保證內部服務的安全性。

          監控利用Spring Boot Admin 來監控各個獨立Service的運行狀態;利用Hystrix Dashboard來實時查看接口的運行狀態和調用頻率等。

          負載均衡將服務保留的rest進行代理和網關控制,除了平常經常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以幫我們進行正常的網關管控和負載均衡。其中擴展和借鑒國外項目的擴展基于JWT的Zuul限流插件,方面進行限流。

          服務注冊與調用基于Consul來實現的服務注冊與調用,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務時能與調用本地方法一樣的編碼體驗,開發者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。

          熔斷機制因為采取了服務的分布,為了避免服務之間的調用“雪崩”,采用了Hystrix的作為熔斷器,避免了服務之間的“雪崩”。

          四 SpringBlade

          開源地址:
          https://gitee.com/smallc/SpringBlade
          SpringBlade 2.0 是一個基于 Spring Boot 2 & Spring Cloud Finchley & Mybatis 等核心技術,用于快速構建中大型系統的基礎框架。和bootdo有相似之處。

          主要特性&&變化

          采用前后端分離的模式,前端單獨開源出一個框架:Sword,主要選型技術為React、Ant Design、Umi、Dva

          后端采用SpringCloud全家桶,并同時對其基礎組件做了高度的封裝,單獨開源出一個框架:Blade-Tool

          Blade-Tool已推送至Maven中央庫,直接引入即可,減少了工程的臃腫,也可更注重于業務開發

          注冊中心選型Consul

          部署使用Docker或K8s + Jenkins

          使用Traefik進行反向代理

          踩了踩Kong的坑,有個基本的使用方案,但不深入,因為涉及到OpenResty。

          封裝了簡單的Secure模塊,采用JWT做Token認證,可拓展集成Redis等細顆粒度控制方案

          在2.0誕生之前,已經穩定生產了近一年,經歷了從Camden -> Finchley的技術架構,也經歷了從fat jar -> docker -> k8s + jenkins的部署架構

          項目分包明確,規范微服務的開發模式,使包與包之間的分工清晰。

          五 Guns

          開源地址:
          https://gitee.com/stylefeng/gunsGuns

          基于Spring Boot 2,致力于做更簡潔的后臺管理系統,完美整合springmvc + shiro + mybatis-plus + beetl,Guns項目代碼簡潔,注釋豐富,上手容易,同時Guns包含許多基礎模塊(用戶管理,角色管理,部門管理,字典管理等10個模塊),可以直接作為一個后臺管理系統的腳手架!同時提供spring cloud版本!

          Guns微服務版本

          Guns的核心是roses-kernel項目
          https://gitee.com/stylefeng-Roses/roses-kernel,提供對spring cloud的支持。

          Roses框架基于Spring Boot 2和Spring Cloud Finchley.RELEASE,整合Eureka + Hystrix + Ribbon + Feign + Zuul,更符合企業級的分布式和服務化解決方案,Roses擁有高效率的開發體驗,提供可靠消息最終一致性分布式事務解決方案,提供基于調用鏈的服務治理,提供可靠的服務異常定位方案(Log + Trace)等等,一個分布式框架不僅需要構建高效穩定的底層開發框架,更需要解決分布式帶來的種種挑戰!

          管理系統功能

          1.用戶管理 2.角色管理 3.部門管理 4.菜單管理 5.字典管理 6.業務日志 7.登錄日志 8.監控管理 9.通知管理 10.代碼生成(旗艦版目前還沒完成)

          項目特點

          基于SpringBoot,簡化了大量項目配置和maven依賴,讓您更專注于業務開發,獨特的分包方式,代碼多而不亂。

          完善的日志記錄體系,可記錄登錄日志,業務操作日志(可記錄操作前和操作后的數據),異常日志到數據庫,通過@BussinessLog注解和LogObjectHolder.me().set()方法,業務操作日志可具體記錄哪個用戶,執行了哪些業務,修改了哪些數據,并且日志記錄為異步執行,詳情請見@BussinessLog注解和LogObjectHolder,LogManager,LogAop類。

          利用beetl模板引擎對前臺頁面進行封裝和拆分,使臃腫的html代碼變得簡潔,更加易維護。

          對常用js插件進行二次封裝,使js代碼變得簡潔,更加易維護,具體請見webapp/static/js/common文件夾內js代碼。

          利用ehcache框架對經常調用的查詢進行緩存,提升運行速度,具體請見ConstantFactory類中@Cacheable標記的方法。

          controller層采用map + warpper方式的返回結果,返回給前端更為靈活的數據,具體參見
          com.stylefeng.guns.modular.system.warpper包中具體類。

          防止XSS攻擊,通過XssFilter類對所有的輸入的非法字符串進行過濾以及替換。

          簡單可用的代碼生成體系,通過SimpleTemplateEngine可生成帶有主頁跳轉和增刪改查的通用控制器、html頁面以及相關的js,還可以生成Service和Dao,并且這些生成項都為可選的,通過ContextConfig下的一些列xxxSwitch開關,可靈活控制生成模板代碼,讓您把時間放在真正的業務上。

          控制器層統一的異常攔截機制,利用@ControllerAdvice統一對異常攔截,具體見
          com.stylefeng.guns.core.aop.GlobalExceptionHandler類。

          頁面統一的js key-value單例模式寫法,每個頁面生成一個唯一的全局變量,提高js的利用效率,并且有效防止多個人員開發引起的函數名/類名沖突,并且可以更好地去維護代碼。

          業務日志記錄

          日志記錄采用aop(LogAop類)方式對所有包含@BussinessLog注解的方法進行aop切入,會記錄下當前用戶執行了哪些操作(即@BussinessLog value屬性的內容),如果涉及到數據修改,會取當前http請求的所有requestParameters與LogObjectHolder類中緩存的Object對象的所有字段作比較(所以在編輯之前的獲取詳情接口中需要緩存被修改對象之前的字段信息),日志內容會異步存入數據庫中(通過
          ScheduledThreadPoolExecutor類)。

          感謝大家的關注和支持,歡迎各位道友留言評論。


          主站蜘蛛池模板: 无码人妻精品一区二区三区久久久| 无码av人妻一区二区三区四区| 天堂资源中文最新版在线一区 | 日韩在线视频一区二区三区| 国精产品一区一区三区有限在线 | 国内精品视频一区二区三区| 国产成人高清亚洲一区91 | 国产精品区AV一区二区| 国产AV午夜精品一区二区三区| 国产短视频精品一区二区三区| 日韩三级一区二区| 中文字幕精品无码一区二区| 无码囯产精品一区二区免费 | 精品福利视频一区二区三区| 三级韩国一区久久二区综合| 亚洲AV美女一区二区三区| 亚洲av乱码一区二区三区按摩| 久久综合一区二区无码| 中字幕一区二区三区乱码 | 波多野结衣一区视频在线| 无码少妇丰满熟妇一区二区| 久久青草国产精品一区| 天堂va在线高清一区 | 国产av天堂一区二区三区 | 国产SUV精品一区二区88L| 精品人妻码一区二区三区| 国产成人精品无人区一区| 97精品一区二区视频在线观看| 免费无码一区二区三区蜜桃| 北岛玲在线一区二区| 一区二区和激情视频| 亚洲av无码一区二区三区乱子伦| www亚洲精品少妇裸乳一区二区| 日韩精品乱码AV一区二区| 中文字幕一区视频一线| 亚洲日本中文字幕一区二区三区| 无码中文字幕一区二区三区| 国产精品视频分类一区| 久久精品无码一区二区无码| 波多野结衣高清一区二区三区 | 国产香蕉一区二区在线网站|