与java有关的各种技术简介(一)
文章转自:Java开源大全
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。【SpringIDE:Eclipse平台下一个辅助开发插件】. WebWork 【Java开源 Web框架】WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。 Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】 Struts 【Java开源 Web框架】Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】 Hibernate 【Java开源 持久层框架】Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】 Quartz 【Java开源 Job调度】Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。 Velocity 【Java开源 模板引擎】Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。 【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】 IBATIS 【Java开源 持久层框架】使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。 Compiere ERP&CRM 【Java开源 ERP与CRM系统】Compiere ERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。 Roller Weblogger 【Java开源 Blog博客】这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。 Eclipse 【Java开源 开发工具】Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。 XPlanner 【Java开源 项目管理】XPlanner 一个基于Web的XP团队计划和跟踪工具。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。 Liferay 【Java开源 Portal门户】代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。 JetSpeed 【Java开源 Portal门户】Jetspeed是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户. JOnAS 【Java开源 J2EE服务器】JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。 JFox3.0 【Java开源 J2EE服务器】JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的。
EasyJWeb 【Java开源 Web框架】EasyJWeb是基于java技术,应用于WEB应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践,框架充分借签了当前主要流行的开源Web框架(Struts、JSF、Tapestry 、Webwork),吸取了其优点及精华,利用Velocity作为模板页面引擎,是一个实现了页面及代码完全分离的MVC开发框架。是一个能实现中小型Web应用系统快速开发的简易Web框架。 Tapestry 【Java开源 Web框架】Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得java代码与html完全分离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升级。Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发。【Spindle:Tapestry辅助开发Eclipse插件】. Turbine 【Java开源 Web框架】Turbine是基于Servlet的框架包,也是开放源代码Jakarta项目。目前还没有关于Turbine的大量文档。它类似于Struts,但是有一些主要区别。突出的一点就是它并没有与JSP耦合。Turbine的特点是它提供了大量可重用的组件。此框架包中包含了大量组件,但是这些组件是离散的。它似乎应该给出更多的组件库,但是由于它缺少文档,所以很难掌握完整的体系结构。 FreeMarker 【Java开源 模板引擎】FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。 Lucene 【Java开源 全文检索】Apache Lucene是一个开放源程序的搜寻器引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。 iText 【Java开源 PDF组件包】iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。 Groovy 【Java开源 动态语言】Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性。 Groovy在WebWork2中的应用。它可以被编译为标准的Java Bytecode。 OpenCms 【Java开源 CMS系统】OpenCms是一个J2EE的产品,它是用Java写成的。它和Tomcat捆绑在一起。但是也能够使用ATG Dynamo、WebLogic和WebSphere。OpenCms支持多种RDBMS来保存内容,包括Oracle、SQL Server、Sybase和mySQL。新版本提供了一个新的模板引擎,JSP支持,一种新的连接管理系统,提高了稳定性。 JUnit 【Java开源 测试工具】JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 BlueJ 【Java开源 开发工具】BlueJ是一个专门为入门级教学设计的JavaTM 开发环境。它是由澳大利亚墨尔本Monash大学BlueJ小组设计并开发的。 XWiki 【Java开源 知识库Wiki系统】XWiki是一个强大的Java开源的Wiki引擎。它支持一些受欢迎的特性如: EJBCA 【Java开源 网络服务端组件】EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成。 JXTA 【Java开源 未分类开源项目】Sun微系统公司公开了旨在建立P2P(Peer to Peer)通用技术基础的JXTA计划。JXTA技术是网络编程和计算的平台,用以解决现代分布计算尤其是点对点(P2P)计算中出现的问题。 DWR 【Java开源 AJAX开发组件】DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-logging日记操作. jQuery 【Java开源 AJAX开发组件】jQuery是一个快速,简练的的JavaScript工具箱它能够让你以简单的方式来操作HTML元素,处理事件,实现特效并为Web页面添加Ajax交互。jQuery设计用于改变你编写JavaScript的方式。开发工具:Aptana IDE Riot 【Java开源 CMS系统】Riot是一个基于Spring框架的内容管理系统。它采用非侵入式设计,能够很方便地为现在应用程序添加CMS功能。通过一个直观Ajax界面能够在浏览页面中直接编辑内容。此外Riot还能够用于编辑/管理POJOs,不管它们采用哪种持久化技术(Hibernate,JPA或自定义DAO) 。 JEasyTest 【Java开源 测试工具】JEasyTest是一个Eclipse IDE插件开发用于简化那些难于用标准mock object框架进行单元测试的代码,比如使用继承关系的代码。 jLynx 【Java开源 持久层框架】jLynx是一个简单、轻量级、高性能的持久层框架。它非常适合于中小应用程序开发,其jar文件大小只有32K并且不依赖任何第三方组件。jLynx的API远比Hibernate、EJB 或JPA来得简单。POJO与java.util.Map持久化都是使用现有JDBC标准。经测试支持的数据库包括:Microsoft SQL Server 2000+、Oracle 9i、10g、IBM DB2/UDB、MySQL和HSQL。 支持通过XML定义SQL查询。提供完整的示例包括POJO与JSP代码生成。 Fusion 【Java开源 多媒体组件】Fusionet这个框架用于把基于OpenGL的3D组件集成到Java-Swing中。Fusionet的目的是为3D化的swing组件提供一个易于使用的环境。 SQL Workbench/J 【Java开源 数据库管理工具】SQL Workbench/J是一个独立于DBMS,跨平台的SQL查询分析工具。支持:直接在查询结果集中编辑,新增和删除数据;在查询结果集、SQL statement、导入和导出中支持BLOB数据。在SQL语句中采用变量替换;能够生成数据结构的XML报告,以便能够重构数据库模型;能够比较两个数据库在结构上有何不同之处;在编辑SQL语句时能够自动提示表格和字段;所有SQL脚本运行在批处理模式下;SQL Workbench/J还提供一个DataPumper工具用于直接在两台服务器上相互复制数据,DataPumper功能还能够当作SQL命令使用以实现批处理。 dnsjava 【Java开源 网络服务端组件】dnsjava是DNS协议的一个Java开源实现。 OpenProj 【Java开源 项目管理】OpenProj是一个能够替代MSProject的桌面项目管理工具。它拥有与MS Project同等的功能,一个友好的用户界面并且能够打开现有的MSProject文件。 Jpcap 【Java开源 网络客户端组件】Jpcap是一个能够抓取与发送网络数据包的Java组件。 你可以使用Jpcap从一个网络接口获取数据包,然后在Java中对它们进行分析和显示。同样也可以通过一个网络接口发送任意数据包。Jpcap当前能够捕获以太网,IPv4,IPv6,ARP/RARP,TCP,UDP和ICMPv4数据包。 Ext UploadForm 【Java开源 AJAX开发组件】Ext UploadForm基于ext开发的文件上传组件。可以把多个文件添加到上传队列里面,也可以从队列里面移除不需要的文件,或都清空整个队列。 dhtmlxVault 【Java开源 AJAX开发组件】dhtmlxVault是一个基于AJAX技术开发,包含进度条的DHTML JavaScript 多文件上传组件。 SWFUpload 【Java开源 AJAX开发组件】SWFUpload是一个基于flash与javascript的客户端文件上传组件。你可以在文件选择对话框中通过ctrl/shift键一次性选择多个上传文件。可以在所有事件中加入Javascript回调函数。可以在上传开始前取得文件信息。能够利用HTML显示文件上传中的一些信息。不需要刷新页面。当不支持Flash或javascript时,能够自动变成正常的HTML上传Form。可以在上传开始前控制文件大小。 当上传多个文件时,它将自动创建上传队列,在还没有开始上传前可从队列中移除或添加文件。 jqUploader 【Java开源 AJAX开发组件】jqUploader是一个基于flash的文件上传widget,可用于代替html中的file input标签。它能够显示上传进度条和上传百分比。 Prototip 【Java开源 未分类开源项目】Prototip是一个基于Prototype javascript框架开发用于创建简单和复杂tooltips的小工具。如与Scriptaculous搭配使用,还为其加入些漂亮的动画效果。 Abeille Forms Designer 【Java开源 未分类开源项目】Abeille Forms Designer是一个GUI builder。开发人员与设计人员都能够利用它快速创建复杂、专业的form。设计人员能够直接在WYSIWYG编辑器中拖放组件。支持取消/重做与复制/粘贴操作。通过添加图片或修改组件的属性来定制属于自己的组件。 JMatter 【Java开源 未分类开源项目】JMatter是一个用于开发两层客户/服务器应用程序基于Hibernate和Swing的框架。它能够在运行期从Domain model动态构建支持CRUD操作的GUI。内置提供查询构建器,执行与查询数据库,向导创建,日历组件等。 Loupe.js 【Java开源 未分类开源项目】Loupe.js-实现图片放大镜效果。 Instant.js 【Java开源 未分类开源项目】Instant.js-实现图片的边框、阴影、倾斜效果。 glossy.js 【Java开源 未分类开源项目】glossy.js-实现图片3D圆角阴影效果。 ServeBox Foundry 【Java开源 未分类开源项目】ServeBox Foundry是一个设计用于Flex2应用程序开发的ActionScript3/Java框架。它基于多种设计模式设计,并包含了一些工具用于解决当前Flex2开发常遇到的一些问题如:模型与视图同步(Model-View sync), screen-browsing,访问控制列表,本地化(localization)等。 SimpleCaptcha 【Java开源 未分类开源项目】SimpleCaptcha是一个创建验证码图片的组件。 Sanselan 【Java开源 多媒体组件】Sanselan一个用于读写各种图片格式的Pure-Java library,还能够快速分析图片的元数据(图片大小,颜色空间,ICC Profile,透明度等)。它比java自带的ImageIO/JAI/Toolkit更加易于使用,支持更多格式。 Rocket-GWT 【Java开源 AJAX开发组件】Rocket-GWT提供一组在开发RIA应用程序时,常用到的GWT Widget(如:Rich Menu System,水平/垂直的Slider和Splitter panel,四种风格的TabPanel,tree widget ,auto complete box widget等)和其它一些实用的功能(如:依赖注入,拖放操作等)。rocket-gwt提供的所有widget和组件都带有单元测试与示例。 |