CCAY Freamwork - Java Web 开发框架


GPL
跨平台
Java

软件简介

CCAY-Freamwork2.0 是面向服务,全面支持Web2.0的Java Web开发框架

技术架构

前后端完全分离,前端使用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示例。