CCAY-Freamwork2.0 簡介

CCAY-Freamwork2.0

CCAY-Freamwork2.0 是面向服務,全面支持Web2.0的Java Web開發框架
項目地址:https://gitee.com/ccayGroup/ccayFramework

技術架構

前後端完全分離,前端使用bootstrap作爲基礎樣式庫,並提供表格、樹、選擇控件等豐富的高易用性的UI組件,可滿足從微小應用到企業級應用需求;後端採用Spring4作爲基礎框架,結合CXF提供SOAP及REST Web服務,Mybatis提供持久層支持。配合Ehcache、log4j、消息中間件等實現框架功能。

總特性總述

1、高可擴展性

框架本身提供大量的可配置屬性,並提供合理的默認值,通常可以通過修改配置屬性來實現不同的邏輯(或技術)支持;您可以覆蓋任何框架提供的默認邏輯而定製實現自己的邏輯:可以基於框架提供的各個功能的接口來實現擴展,或者覆蓋框架中的Spring Bean定義,甚至可以覆蓋任何一個class類的字節碼

2、高可用性

大多數情況下,框架的提供的可配置屬性均可以在非停機方式下動態修改,並立即在系統中體現。可動態添加枚舉值,動態修改html,css樣式,動態修改郵件模板等,如果系統處於集羣部署環境下,這些修改會自動同步到其他JVM中並立即生效。

3、高適應性

您可以將你的應用不做調整(或僅做配置調整)就可以部署在任何J2EE標準的容器中,Jetty,tomcat,Docker,Jboss等;支持集羣部署,並具有內建的session同步及緩存同步機制;

4、易用性

爲最終系統使用用戶,提供大量精心設計的前端UI組件,可以幫助用戶方便的使用系統,提供聯想錄入,歷史錄入自動完成,彈框選擇,表格個性化設置,Excel批量操作等等;爲開發人員提供詳盡的開發文檔及豐富的實例參考,可以使開發人員快速上手並迅速提高;內置多種工程工具,可方便的管理SQL腳本,導入導出配置信息,構建工具等。

5、安全性

基於RBAC設計,並對角色進行進一步擴展細分,可支持企業級複雜權限需求;使用Shiro作爲基礎安全框架,提供基於Spring Aop方法攔截的調用安全檢查;擴展Mybatis動態腳本,提供數據級動態過濾;屏蔽高風險語言特性,例如取消Mybatis Mapper的${}的支持;

6、互操作性

可藉助CXF及Spring方便的暴漏或調用WebService接口

核心功能概述

1、REST服務支持

使用CXF對RESTful服務提供支持,可以使用@GET、@POST、@PUT、@DELETE等基於Java標準的RESTful API對外提供服務,詳情能力請參照CXF官方文檔。

2、持久層支持

使用Mybatis作爲持久化框架,並對Mybatis的動態語言進行擴展:
可以在Mapper XML中引用當前系統上下文,從而獲取當前用戶,角色,語言等信息而無需在作爲參數傳入;
內置的分頁插件可以避免書寫分頁邏輯;
內置的擴展標籤可以支持動態排序,動態篩選,及基於當前用戶權限的數據權限過濾;
支持多種數據庫產品使用相同的mapperXML文件,並可以根據當前數據庫產品編寫特定邏輯

3、權限系統支持

基於RBAC設計並對角色進行按照維度細分的權限模型,可以滿足從基本權限及任何複雜權限需求的支持。採用Shiro作爲基本的權限實現框架,擴展了AOP攔截註解,權限校驗,數據權限控制等,並提供前端控制機制,可方便控制菜單按鈕依據權限顯示。

4、緩存支持

基於Spring Cache,默認採用Ehcache作爲實現,並支持分散配置方式,您可以在您任意位置申明cache類型;拋棄複雜的,具體實現相關緩存集羣同步機制,內建的基於HTTP的緩存機制可以在集羣環境下自動同步緩存。

5、枚舉型支持

爲了完全避免魔鬼數字的出現,對Java語言的枚舉類型語義進行了擴展,支持動態擴展枚舉項;在JavaScript,CXF數據綁定,POJO,Mybatis MppperXml中均提供支持;

6、異步消息支持

提供異步消息具體實現無關的異步處理框架,可以在編寫極少量代碼的情況下,方便的實現異步操作。具體消息實現可以採用ThreadPool模擬,ActiveMQ、JBoosMQ、Web Sphere MQ等任何JMS標準實現,並支持Kafka。

7、國際化支持

支持國際化動態加載,意味着您可以在非停機狀態下修改國際化;國際化信息均使用內存緩存,並在修改時可自動同步到多個JVM中;支持標準的ResourceBundle方式使用JAVA API獲取國際化;前端使用HTML標籤擴展屬性及JavaScript支持國際化;

8、虛擬文件系統支持

您不用關心具體文件的存儲位置,基於Apache VFS2.0封裝的VFS模塊將文件存儲抽象爲3種存儲位置:臨時位置,工作位置,歸檔位置。實際位置可以是Apache VFS2.0支持的任何文件協議路徑:如本地文件系統,FTP,HDFS等。VFS模塊提供常用的API完成文件的創建、刪除、修改、解壓、壓縮、複製等功能。

9、class動態覆蓋支持

基於Java Instrumentation機制,您可以修改CCAY框架或框架依賴的包中的任意class的字節碼。在框架或第3方包沒有合適擴展設計時,這個功能可避免你手動替換JAR中的.class文件。

10、文件上傳下載支持

基於Apache Fileupload及VFS,提供IUploadFileConsumer接口,可以讓您在自定義上傳處理邏輯。例如:權限驗證、文檔類型驗證、上傳文件處理、文件存儲位置轉儲。下載提供多線程處理支持,並提供IDownloadSupport接口,可以驗證下載權限,下載文件流預處理等

11、Excel導入導出支持

基於PIO自定義的XML Schema可以使您方便的開發Excel的導入導出功能。可通過XML指定導入導出的列,列類型,驗證器,錯誤提示信息,及是否將錯誤提示信息可附加到導入文件等,導入的IExcelDataConsumer允許您按批處理數據(如驗證,持久化等),導出的IExcelDataProvider允許您按批提供數據(如分頁裝載的結果集或ResultSet結果集);導入導出支持百萬級數據量。

12、註冊項支持

註冊項類似與Java Property,CCAY框架中的很多可配置數據均通過註冊項的方式提供。註冊項允許你從文件、數據庫、甚至是某個遠程配置中心加載註冊項;支持動態修改註冊項的值,並同步到集羣中的多個JVM中;支持字符串、數字等基本類型也支持基於JSON的複雜類型;

13、審計日誌支持

可以通過AOP的後置通知註解,方便的讀取方法調用參數中的值,採用異步方式記錄審計日誌;提供API函數可以在你需要的任何地方生成並記錄審計日誌。

14、SQL腳本導出支持

您可以像管理代碼一樣管理你的SQL腳本,可以通過內建的Maven插件命令導出集中了的SQL腳本文件。
Maven骨架工程
提供的Maven Archetype,可以幫助你在瞬間搭建好基於CCAY-Freamwork的工程結構。

15、UI

基於Bootstrap並融合了近百種基於Bootstrap流行的UI組件;對前端操作的核心功能及組件進行了JavaScript API封裝,可更容易的使用這些組件;提供了大量的示例及API說明文檔,您幾乎可以找到您所要用的所有UI示例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章