1、底層架構
- 以 Spring Boot 2 爲基礎,Maven 多項目依賴,模塊分項目,松耦合,方便模塊升級、增減模塊。
- 模塊化的數據庫自動升級程序,當模塊升級代碼需要更新數據庫時,自動執行對應版本 SQL 腳本。
- 功能授權模塊靈活,按鈕級別,支持 單點登錄、第三方登錄,豐富的擴展模塊,簡單 yml 配置即可實現。
- 支持多數據源,深入 MyBatis 底層事務,從 DAO 層切換多數據源,方便快捷,徹底的解決必須從 Controller 裏切換數據源的麻煩。並且支持,分佈式事務,跨應用級別的事務,簡單 yml 配置即可實現。
- 數據表主鍵優化思想,如分類科目表,採用有意義的主鍵方式,讓客戶去自定義,減少後期運維維護成本。
-
獨創 @Table 註解(優於MyBatis-Plus)在 MyBatis 基礎上 Dao 層封裝:
- 自動生成增刪改 SQL,不需要在 mapper.xml 裏寫重複又費時的 SQL 了,減少開發和後期維護成本。
- 所有列 @Column 定義均放到類頭,而不是分佈到各個屬性或方法上,非常好,主要是有如下原因:
- 一是,放到表頭的好處是,可一覽熟知該實體類對應的物理表結構是什麼樣,開發者思維從物理表結構到對象的映射轉換,都是基於物理表結構的,減少後期代碼分析的維護成本,@Column 指定物理字段名,而不是指定類上的屬性名,也是這個原因;
- 二是,生成的 SQL 和查詢條件,可定義列的排列順序,方便覈查定義,優化查詢,提升性能;
- 三是,方便 @JoinTable 關聯表和其它擴展信息的設置,如果分佈到類的屬性上就不太好管理列。
- 數據權限:不僅僅是角色,顆粒度細化到每個人員的身上,可自定義第三方數據權限,不僅僅是部門和公司,你可以擴展,如:地區,欄目分類,商品分類,無需讓你多寫代碼,簡單調用即可實現複雜的數據權限控制。
- 緩存監控:採用 J2Cache 二級緩存,支持快速切換爲 Redis 緩存,支持集羣 Session 和系統緩存共享。
- 服務器監控,查看 CPU,內存,JVM,磁盤信息等。方便運維人員分析系統負載情況。
- 支持 SAAS 多租戶模式:每個租戶數據通過 corp_code 字段進行分離,數據互不干擾。
- 支持 Spring Cloud 架構:分佈式,微服務,最小化內核,統一配置中心,統一授權認證中心。
- 樹結構的圖特設計:提高運維、數據分析、優化查詢。
- 多用戶類型支持:員工、會員、專家、往來單位等。
- 豐富的內置功能:用戶權限、數據權限、系統管理。
- 定時任務在線配置,界面化生成 cron 表達式,支持集羣環境自適應,調度日誌監控。
- BPM 業務流程模塊:基於 Flowable,支持退回、自由流、會籤等高級應用。
- 在線預覽系統:文件管理、在線預覽圖片、文檔、文本、視頻等格式
- 消息推送:APP、短信、郵件、微信,你無需瞭解消息是怎麼發送出去的,只需瞭解消息發送接口即可。
- 提供豐富的移動端接口、第三方系統調用接口,輕鬆實現授權認證、數據調用(支持 json、xml 等格式)
- 國際化的支持,頁面標籤國際化,字典菜單國際化,數據國際化(中文、英語、日語等)。
- 在線代碼生成工具,操作簡化及優化,支持多數據源(單表、主子表、樹表、Cloud等模板,支持自由擴展)。
- 在線查詢在線人員,強踢在線賬號。
- 提供豐富的在線文檔及案例。
2、安全方面
- 系統採用Java 語言開發,具有卓越的通用性、高效性、平臺移植性和安全性(適應全行業的軟件)。
- 分層設計層次清楚,低耦合,各層必須通過接口才能接入並進行參數校驗,保證數據操作的安全。
- 雙重驗證,用戶表單提交雙驗證:包括服務器端驗證及客戶端驗證,防止用戶通過瀏覽器惡意修改(如不可寫文本域、隱藏變量篡改、上傳非法文件等)避免客戶端跳過驗證直接操作數據庫。
- 安全編碼,用戶表單提交所有數據,在服務器端都進行安全編碼,防止用戶提交非法腳本及SQL注入獲取敏感數據等,確保數據安全。
- 密碼加密,登錄用戶密碼進行SHA1散列加密,此加密方法是不可逆的。保證密文泄露後的安全問題。
- 強制訪問,系統對管理端鏈接都進行用戶身份權限驗證及權限,防止用戶直接獲取資源。
- 數據庫密碼及其它安全密鑰自動加密配置(只需配置參數即可實現,無需使用複雜的祕鑰生成功能)。
- MyBatis 參數採用安全接受,特殊操作都必須經過 SQL 安全過濾,杜絕 SQL 注入問題。
- 所有請求參數獲取,均通過 XSS 跨站腳本過濾方法,杜絕 XSS 問題。
- 樂觀鎖簡單實現,避免一條數據多人同時操作時的數據覆蓋,提高數據安全性。
- 通過 yml 簡單配置,輕鬆解決 JS 是否允許跨域操作,自適應跨域情況。
-
身份認證:
- 登錄失敗多少次後顯示驗證碼。
- 登錄失敗多少次後鎖定賬號及鎖定賬號時間。
- 登錄賬號密碼可加密後再提交後臺。
- 同設備是否允許賬號多地登錄。
-
密碼策略:
- 初始密碼修改策略,提醒或強制用戶修改初始密碼。
- 賬號密碼修改策略,多長時間內未修改,則提醒或強制修改密碼。
- 開關控制密碼修改多少次內不允許重複,驗證與上次或前幾次的密碼是否相同。
- 開關控制賬號密碼修改最低安全等級,很弱、弱、安全、很安全,四個等級,強制或提醒。
-
權限審計:
- 賬號密碼審計(未修改初始密碼、使用簡單密碼、定期未修改密碼、長期未登錄、未設置密保、以上全部、審計結果數據導出)
- 菜單權限審計(根據菜單及權限查詢,都有哪些用戶)
- 用戶權限審計(根據用戶查詢,都有哪些菜單及權限)
- 登錄提交信息加密(支持 DES 加密、Base64加密等)
- 支持設置獲取客戶端IP的Header名稱,防止IP僞造。
- 支持設置允許的請求方法設定(如:僅允許 GET、POST 請求)
- 是否允許賬號多地登錄,如果設置爲false,同一個設備類型的其它地點登錄的相同賬號被踢下線
- 是否允許多賬號多設備登錄,如果設置爲false,其它地點登錄的相同賬號全部登錄設備將被踢下線
- 是否允許刷新主框架頁,如果設置爲false,刷新主頁將導致重新登錄。如 銀行系統 個人首頁不允許刷新。
- 是否允許嵌入到外部網站iframe中(true:不限制,false:不允許)
- 是否允許跨域訪問 CORS,解決 Cookie 跨域訪問問題。
- 是否允許跨域訪問時 CORS,可以使用的方法和響應頭(如:僅允許 GET、POST 請求)
- 是否允許接收跨域的 Cookie 憑證數據 CORS 設置
- 是否允許的網站來源地址,不設置爲全部地址(避免一些跨站點請求僞造 CSRF)
- 是否在登錄後生成新的Session(默認false)安全係數更高的系統設置
- 可設置多個允許的內部系統 IP 地址的白名單,否則拒絕訪問
3、用戶界面
- 基於 Bootstrap 平面化界面設計,精細,更加美觀、高端、大氣、上檔次,支持ie9+及其他任何瀏覽器。
- 支持手機或平板訪問,響應式樣式、響應式佈局,根據屏幕分辨率自適應控件佈局。
- 無刷新設計,除了進入功能頁面和新頁面,其它情況下全部採用 Ajax 交互,優化體驗和性能。
- 支持一鍵換膚,只需在 yml 裏修改下主題名稱即可快速切換整個UI的風格,不僅僅是色調和樣式,佈局也可改變。支持自定義擴展項目獨有的主題樣式風格。
- 優化用戶功能操作,大衆思維模式,功能清晰,更加貼切和友好。
4、前端開發
- 採用當前比較流行的 Beetl 模板引擎,它的優點很多,大家可自行查閱看看,這裏不多說了。
- 封裝 Beetl UI 通用組件,簡單實現基本表單控件、樹選擇,列表選擇,文件上傳,等等,總之是簡化開發。
- 數據表格 jqGrid 組件封裝,自動完成分頁、排序、列寬、多表頭、子表、編輯表、等。
- 支持前後分離應用,方便與手機 API 接口對接,Token 方式授權。
5、功能及組件
- 工具類 Utils 封裝優化,應有盡有,包分類層次分明,獨立工具類項目。
- 強大的 Excel 導出導入工具封裝,支持大數據量,註解定義,簡單配置即可實現。
6、我們的優勢
- 整體架構清晰、穩定技術先進、源代碼書寫規範、經典技術會的人多、易於維護、易於擴展、安全穩定。
瞭解更多:http://jeesite.com/docs/