Java构件库

Core Classic产品中使用了大量开源构件及自主研发构件,应用的所有构件均历经了大量的测试及验证,具备一定的稳定性。

Spring

Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

  • 目的:解决企业应用开发的复杂性
  • 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
  • 范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

  • 轻量:从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
  • 控制反转:Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
  • 面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
  • 容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
  • 框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

Core Classic产品使用Spring作为控制器,IOC、AOP等核心内容均有所体现。

目前使用的Spring的版本为:Spring 4.0.0 M1。

Sring MVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。

Core Classic产品中的视图层展现使用Spring MVC框架,替代初版的Struts框架,在支持REST、代码编写效率、可读性上均有非常优秀的表现。

Hibernate Validator

用Annotations 给类或者类的属性加上约束(constraint),在运行期检查属性值是很优雅的。该框架的使用非常便捷,几乎没有什么学习曲线,Validator 是一个验证框架,并不需要和Hibernate的其他部分绑定就可以使用。

Core Classic产品支持前后端双重校验,保证数据入口的安全。服务器验证组件使用Hibernate Validator实现,通过非常便捷的配置和调用即可完成复杂的后台服务器端验证。

注意:目前系统中使用的级联校验部分,需要通过手动编码的方式自行验证。

JDBC Template

Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。

Core Classic产品使用JDBC Template作为数据连接层的基础操作对象,并对该组件进行了较为完善的二次封装。

通常的底层框架为了兼容各大数据库使用ORM组件,例如Hibernate、MyBatis等,但我们并不推荐这么做。ORM组件应用的场景在我们的技术团队所使用的过程中更能体会到便捷的地方是其开发效率,并不是其基于方言的数据库兼容性。由于Core Classic产品中提供了大量的辅助开发工具,我们可以非常有底气的说,应用我们的辅助开发工具加上JDBC Template开发,效率并不比Hibernate这类ORM组件低,核心系统中完全可以做到在保证灵活性的基础上提升开发效率。ORM组件另一个不可避免的问题就是其执行效率的问题,并且其为了适应方言而定义的各种SQL语法也需要开发人员耗费学习成本,且资料较少,调试过程繁杂反而会影响开发效率。

Core Classic产品若需要支持多种数据库,有经验的从业人员可以非常快速的将系统改编为对应的数据库支持框架,主要处理内容均是方言体现的脚本。

C3P0

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

Core Classic产品的JDBC数据连接池通过C3P0完成。

Apache Commons

Apache Commons项目的由三部分组成:

  • The Commons Proper - 一个可重用的Java组件库。(已经发布过的)
  • The Commons Sandbox - Java组件开发工作区. (正在开发的项目)
  • The Commons Dormant - 当前处于非活动状态的组件库.(刚启动或者已经停止维护的项目)

建立和维护可重用的Java组件。使用组件可以提高开发效率和质量。

Core Classic产品加载了大量Apache Commons的类库,方便程序开发者做快速开发。

Log4J

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

Core Classic产品中的日志处理部分使用了LOG4J来记录文件日志(数据库日志是团队研发功能实现的)。

POI

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

结构:

  • HSSF - 提供读写Microsoft Excel格式档案的功能。
  • XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
  • HWPF - 提供读写Microsoft Word格式档案的功能。
  • HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
  • HDGF - 提供读写Microsoft Visio格式档案的功能。

Core Classic产品中所有涉及Office处理均使用POI构件。

前端构件库

前端构件库大部分为JavaScript构件,均已经经过大量的测试验证,具备一定的稳定性。说明文档组件排名不分先后。

DLShouWen Validator

原DT Validator验证组件,基于MIT开源协议的前端验证组件,拥有使用简单、功能强大、跨浏览器支持、程序思路清晰、高效加载等众多优秀素质。使用者可以访问官方网站查阅我们的参考文档及示例程序。

官方网站http://os.dlshouwen.com/validator

Colorbox

ColorBox是一个基于jQuery 1.3 的轻量级,自定义灯箱插件,功能非常强大,支持图片,图片组,ajax,inline和iframed内容,灯箱样式完全由用户控制,可自定义CSS样式,不需要改写ColorBox库文件就能重写展示效果设置,支持加载预处理提示等等。

Core Classic产品使用的弹出窗口组件为Colorbox,做了一些简单的样式效果修改。

datePicker

Core Classic产品使用的日期选择器为国内非常流行的My97DataPicker日期选择器。该选择器完全由国人开发,非常适合国内的使用者进行日期的选择,而且验证和智能纠错功能非常健全,并且灵活度非常的高,可以选择时间里面任意的参数。

Echarts

ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。

支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪表盘、漏斗图、事件河流图等12类图表,同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和混搭展现。

Core Classic产品使用Echarts作为图表展示组件,经过我们的大量测试及使用,一致认为Echarts是目前国内外所有图表组件中最优秀的,可以媲美任何收费图表组件产品。

FontAwesome

Font Awesome为您提供可缩放的矢量图标,您可以使用CSS所提供的所有特性对它们进行更改,包括:大小、颜色、阴影或者其它任何支持的效果。

  • 一个字库,585个图标:仅一个Font Awesome字库,就包含了与网页相关的所有形象图标。
  • 无需依赖JavaScript:Font Awesome完全不依赖JavaScript,因此无需担心兼容性。
  • 无限缩放:无论在任何尺寸下,可缩放的矢量图形都会为您呈现出完美的图标。
  • 如言语一般自由:Font Awesome完全免费,哪怕是商业用途。请查看许可。
  • CSS控制:只要CSS支持,无论颜色、大小、阴影或者其它任何效果,都可以轻易展现。
  • 高分屏完美呈现:Font Awesome的矢量图标,将使您的网站在视网膜级的高分屏上大放异彩。
  • 完美兼容其它框架:尽管是为Bootstrap设计,但Font Awesome同样能与其它框架完美协同运作。
  • 可用于桌面系统:用于桌面系统,或需要一套完整的矢量图,请查看备忘。
  • 可适配于屏幕阅读器:与其它字体不同,Font Awesome不会影响屏幕阅读器正常工作。

Core Classic产品使用FontAwesome作为图标显示,其优秀的加载效率及显示效果让我们的核心系统从第二版即开始启用此构件。

JQuery

Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

Core Classic产品提倡使用jQuery来进行前端的脚本处理,jQuery对浏览器的兼容性做得特别的完善,而且文档健全,使用简单,开发高效。

jsColor

Core Classic产品所使用的颜色选择器是由网络程序爱好者提供的,功能简单、完善,但设计模式较差,程序的易读性较低。此选择器开发时间较为久远,程序偏原生。

jsCompile

JSPacker 由PHP编写的压缩工具,可以混淆代码保护知识产权,产生的代码兼容IE、FireFox等常用浏览器,国内大部分在线工具网站都采用这种算法压缩,只因为此算法采用PHP编写,正则表达式替换语句,没有语法分析内核,环境搭建成本低,混淆代码页不符合开源精神。

Core Classic产品中内置的JS编译器为JSPacker,虽然该编译器会将代码混淆变为不可读状态,但我们提供的程序均包含程序源码。

processBar

ProcessBar是Core Classic产品内置的一套进度条组件,在用户做了某项操作的时候,我们将会弹出ProceeBar的进度条显示框增强用户体验。

rotate

一款基于jQuery的旋转插件,支持Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Google Chrome,高级浏览器下使用Transform,低版本ie使用VML实现。

Core Classic产品中的快捷方式功能使用rotate组件完成。

sigmaGrid

SigmaGrid是一个国人写的开源的表格构件。此表格构件网络上的评价褒贬不一。我们对此控件进行了一定的二次封装和改造,修复了其内部大部分的BUG,此构件的优势是功能强大,缺点是代码混乱,可读性差,出现错误调试困难。

Core Classic产品使用SigmaGrid组件作为列表展现,前台针对该组件修复了大部分的错误,删掉了其使用频率较低的功能,后台整合了数据传输部分,目前在核心系统中使用该组件非常便捷高效。

swfUpload

SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统<input type="file" />标签的文件上传模式。

主要特点:

  • 可以同时上传多个文件
  • 类似AJAX的无刷新上传
  • 可以显示上传进度
  • 良好的浏览器兼容性
  • 兼容其他JavaScript库 (例如:jQuery, Prototype等)
  • 支持Flash 8和Flash 9

SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。

在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。

Core Classic产品中大部分上传功能均使用swfupload组件完成。修复了在Firefox中Session失效的302错误问题,目前由于该组件限制,暂不支持safari浏览器。

syntaxHighLighter

SyntaxHighlighter是一套开源、完善的代码着色器。可以将javascript代码、java代码、css代码等各种代码进行着色,是读者更好的去理解代码。

Core Classic产品中所有的代码高亮均是使用此构件,大部分引用在辅助工具中。

UEditor

UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。

Core Classic产品使用UEditor作为富文本编辑器,针对该编辑器进行了简单的后台封装及前台的改造。

zTree

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。专门适合项目开发,尤其是 树状菜单、树状数据的Web显示、权限管理等等。

zTree 是开源免费的软件(MIT 许可证)。在开源的作用下,zTree 越来越完善,目前已经拥有了不少粉丝,并且今后还会推出更多的 zTree 扩展功能库,让 zTree 更加强大。

ZTree的特点:

  • zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载
  • 采用了延迟加载技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀
  • 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器
  • 支持 JSON 数据
  • 支持静态和 Ajax 异步加载节点数据
  • 支持任意更换皮肤 / 自定义图标(依靠css)
  • 支持极其灵活的 checkbox 或 radio 选择功能
  • 提供多种事件响应回调
  • 灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽哟
  • 在一个页面内可同时生成多个 Tree 实例
  • 简单的参数配置实现 灵活多变的功能

Core Classic产品中使用的树形展示组件均使用zTree。