二次开发平台 C1开发平台(card one)
本文导语: 一 CardOne开发框架 1 概述 CardOne是以Spring Framework为核心的,实用风格的JavaEE应用集成,是JavaEE世界中的主流技术选型,最佳实践的总结。 1.1 对项目管理的支持 基于maven(管理项目的构建,报告和文档的软件项...
一 CardOne开发框架 1 概述
CardOne是以Spring Framework为核心的,实用风格的JavaEE应用集成,是JavaEE世界中的主流技术选型,最佳实践的总结。
1.1 对项目管理的支持基于maven(管理项目的构建,报告和文档的软件项目管理工具)构建项目,使创建、开发、测试、发布、升级、生成文档等整个过程极度简便,各过程较规范。节省整个过程中不必要的时间消耗,规避很多风险。
1.2 主流技术选型选用主流技术的重点原因为,较大部分开发人员已经掌握了这些技术的使用,在使用本框架开发时,基本可以做到零学习成术。而且各主流技术的开发手册,本框架的技术平台已收集齐全,方便开发人员随时查阅。以下为各主流技术选型:
1.2.1 Web· MVC Framwork: Spring MVC 4.1.2。
· Template Framework:使用Freemarker(1、不能编写java代码,可以实现严格的mvc分离;2、性能非常不错;3、对jsp标签支持良好;4、内置大量常用功能,使用非常方便;5、宏定义(类似jsp标签)非常方便;6、使用表达式语言)。
· Javascript Library:JQuery、bootstrap。
· JavaScript/CSS Compressor: seajs、bootstrap。
1.2.2 Remote Invocation· SOAP WebService: JAX-WS2.0的注解 + Apache CXF 无疑是最成熟的。
· Spring Http Invoker: 与rmi一样的性能,后期如果前端用nodejs开发,可以平滑的切换到Hessian。
1.2.3 Database· 数据库设计基本原则: 1.主键的列名统一为id。2.为方便数据操作及维护,不建立任何外键,用程序去保证关联关系。3.为表名添加前缀以便日后管理。比如有几十个表,将联系比较紧密的表,使用相同的前缀。
· ORM Framework: spring JdbcTemplate的基础上结合模板引擎freemarker进行扩展,使之可把sql写到java代码外部,便于后期维护。封装支持多数据源动态切换、多方言支持等等。
· 数据库连接池: 采用阿里的druid,。
· Cache: MemcachedCache(可切换为阿里云的OCS)与GuavaCache混合使用,中央式缓存作为本地缓存的二级缓存,减少对网络io的消耗,结合spring cache注解,可减少代码量。
1.2.4 Services· Security Framework: 基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
· Schedule: 对于固定时间间隔的任务,JDK自带的Executor已足够好。Cron式定时执行,Spring的Scheduler也能满足。而且Spring的提供的纯XML配置也让Scheduler变得很简单,Quartz更大的优势体现在保证集群中有且仅有一台服务器执行任务。
1.2.5 Utilities· General: 优先使用Apache 系列的工具类,其次有 google 的 guava 及 spring 中的工具类补充。
· JSON: 使用GSon, google 的工具类,安卓手机客户端开发时也会用到,减少开发人员的学习成本。
· Email: Spring自带的Email封装挺好用的。
· Logging: Slf4j,结合lombok的@Slf4j支持,可做了很少的代码量。
· 其它:excel生成与读取,mdb读取等等。
2 特点和优势· 学习成本很低,了解主流技术的开发人员可以上手即用。
· 开发文档详细齐全,并用其构架了基础开发平台,再用基础开发平台实现了hrm、oa、cms等系统,有大量的demo可以参考。
· 有配套的代码生成工具支持,可生成整个项目的所有后台代码,有基本的增、删、改、分页查询、验证等功能。
· 对excel、xml、json、pdf等各类数据转换有封装方便使用的工具类。
· 在配置部分不光支持xml,还支持动态语言groovy。可用于复杂业务逻辑的动态配置。
二 CardOne代码生成工具 1 概述基于spring 配置方式配置项目结构,包括项目名称、项目包名、各层模块,并可定义每个模块下有几个业务,每个业务对应有那些实体等等,还可能配置那些实体是不需要生成增、删、改、分页方法dao、service、controller各层方法的,比如有些实体只是简单的关联表。如果扩展现有生成模板可实现前端页面的生成。
2 特点和优势· 采用开发人员熟悉的spring配置方式,零学习成本。
· 采用主流的模板引擎技术freemarker,方便扩展模板。
· 配置上可实现连接多个不同的数据源,生成同一个项目的代码。
3 生成案例· Po层:完全与数据库表相对应的结构。
· Dto层:继承po层表结构,可一些业务操作属性,比如ids用于批量删除、分页号paginationNo、分页大小paginationSize
· Vo层:与视图交互时交互数据。
· Dao层:数据持久层,现基于spring jdbc实现,也可切换为mybatis或其它框架。
· Service层:业务层,写各种业务规则。
· Controller层:控制层,现基于 spring mvc.