主要就我所了解的J2EE开发的框架或开源项目作个介绍,能够根据需求选用适当的开源组件进行开发。主要仍是以Spring为核心,也总结了一些之前web开发经常使用的开源工具和开源类库javascript
这个不用介绍了,用的很频繁,用的比较多的是映射,包括继承映射和父子表映射html
对于DAO在这里介绍个在它基础上开发的包bba96,目前最新版本是bba96 2.0它对Hibernate进行了封装, 查询功能包括执行hsql或者sql查询/更新的方法,若是你要多层次逻辑的条件查询能够本身组装QueryObject.能够参考它作HibernateDAO.也能够直接利用它java
另外一个ORM工具,Apache的,没有Hibernate那么集成,自由度比较大web
Spring的配置文件默认为WEB-INF/xxxx-servelet.xm其中xxx为web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name.ajax
Spring将按照配置文件定义的URL,Mapping到具体Controller类,再根据URL里的action= xxx或其余参数,利用反射调用Controller里对应的Action方法。spring
Spring提供Binder 经过名字的一一对应反射绑定Pojo,也能够直接从request.getParameter()取数据。sql
Sping 提供了Validator接口固然还可使用开源的Commons-Validaor支持最好缓存
Spring的拦截器提供接口须要本身编写,在这点不如WebWork作的好。全面安全
(这里提一下WebWork和Struts的区别最主要的区别在于WebWork在创建一个Action时是新New一个对象而Struts是SingleMoule全部的都继承它的一个Action,因此根据项目须要合适的选择。)服务器
因为Webwork或Spring的标签确实颇有限,通常view层用JSTL标签,并且听说JSTL设计很好速度是全部标签中最快的使用起来也很简单
Dojo主要提供Tree, Tab等富客户端控件,能够用其进行辅助客户端开发
YahooUI和DOJO同样它有本身的一套javascript调试控制台,主要支持ajax开发也有不少Tree,Table,Menu等富客户端控件
FCKEditor 最流行的文本编辑器
Coolest日历控件 目前不少日历控件可用,集成在项目中也比较简单,这个只是其中的一个,界面不错的说……
Prototype.js做为javascript的成功的开源框架,封装了不少好用的功能,经过它很容易编写AJAX应用,如今AJAX技术逐渐成熟,框架资源比较丰富,好比YUI,DWR等等,也是由于JavaScript没有合适的调试工具,因此没有必要从零开始编写AJAX应用,我的认为多用一些成熟的Ajax框架实现无刷新更新页面是不错的选择。
这两个的功能差很少,都是View层表格的生成,界面也比较相向,能够导出Excel,Pdf,对Spring支持很容易。
相比较而言比较推荐ExtremeTable,它的设计很好功能上比DisplayTag多一些,支持Ajax,封装了一些拦截器,并且最方面的是在主页wiki中有详细的中文使用文档。
OSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,Cache是一种用于提升系统响应速度、改善系统运行性能的技术。尤为是在Web应用中,经过缓存页面的输出结果,能够很显著的改善系统的稳定性和运行性能。
它主要用在处理短期或必定时间内一些数据或页面不会发生变化,或将一些不变的统计报表,缓冲在内存,能够充分的减轻服务器的压力,防治负载平衡,快速重启服务器(经过硬盘缓存)。
sitemesh应用Decorator模式主要用于提升页面的可维护性和复用性,其原理是用Filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。一般咱们都是用include标签在每一个jsp页面中来不断的包含各类header, stylesheet, scripts and footer,如今,在sitemesh的帮助下,咱们删掉他们轻松达到复合视图模式。
Sitemesh也是 OpenSymphony的一个项目如今最近的版本是2.2,目前OpenSymphony自从04年就没有更新的版本了……感受它仍是比较有创新的一种页面组装方式, OpenSymphony开源组织的代码通常写的比较漂亮,能够改其源代码对本身的项目进行适配。
测试发现Sitemesh还存在一些问题,好比中文问题,它的默认编码是iso-8859-1在使用时候须要作一些改动。
这个不用说了,遵循W3C标准的web页面开发。
Pager-taglib 是一套分页标签库,能够灵活地实现多种不一样风格的分页导航页面,而且能够很好的与服务器分页逻辑分离。使用起来也比较简单。
Jodd Form taglib使用比较简单,只要把html的头尾以form包住,就会自动绑定mybean, 自动绑定mybean的全部同名属性到普通html标记input, selectbox, checkbox,radiobox……在这些input框里不用再写任何代码…
J2EE应用最经常使用的ajax框架
Eclipse BIRT功能比较强大,也很庞大……好几十M,通常没有特别需求或别的图表设计软件能够解决的不用它
JasperReports+ iReport是一个基于Java的开源报表工具,它能够在Java环境下像其它IDE报表工具同样来制做报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最经常使用的报表工具。
JFreeChart主要是用来制做各类各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。
琴棋报表,国产的……重点推荐,适合中国的状况,开放源代码,使用彻底免费。纯JAVA开发,适用多种系统平台。特别适合B/S结构的系统。官方网站有其优势介绍,看来用它仍是不错的选择,最重要的是支持国产呵呵
Acegi是Spring Framework 下最成熟的安全系统,它提供了强大灵活的企业级安全服务,如完善的认证和受权机制,Http资源访问控制,Method 调用访问控制等等,支持CAS
(耶鲁大学的单点登录技术,这个单点登录方案比较出名。我也进行过配置使用,能够根据项目须要,若是用户分布在不一样的地方不一样的系统通用一套登录口令能够用它进行解决,通常注册机登录机就是这样解决的)
Acegi只是于Spring结合最好的安全框架,功能比较强大,固然还有一些其余的安全框架,这里列举一些比较流行的是我从网上找到的,使用方法看其官方文档把…
JAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架……真够多的呵呵
Lucene是一套全文索引接口,能够经过它将数据进行倒排文件处理加入索引文件,它的索引速度和查询速度是至关快的,查询百万级数据毫秒级出结果,如今最火的Apache开源项目,版本更新速度很快如今已经到了2.0,每一个版本更新的都比较大,目前用的最多的版本应该是1.4.3,但它有个不太方面的地方单个索引文件有2G文件限制,如今2.0版本没有这个限制,我研究的比较多,它的扩展性比较好,能够很方面的扩充其分词接口和查询接口。
基于它的开发的系统不少,好比最经常使用的Eclipse的搜索功能,还有一些开源的软件好比Compass,Nutch,Lius,还有我最近作的InSearch(企业级FTP文件网页搜索)
主要是Jakarta-Commons类库,其中最经常使用得是如下几个类库
最经常使用得类是StringUtils类,提供了使用的字符串处理的经常使用方法效率比较高
主要用Beantuils可以得到反射函数封装及对嵌套属性,map,array型属性的读取。
里面有不少Utils方法
Log4J
任务是日志记录,分为Info,Warn,error几个层次能够更好的调试程序
Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架, 它对如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基础框架给出了示范。 在持久层,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring,用户能够自由选择Struts、Spring/MVC,Webwork,JSF这几个Web框架。
。SpringSide较完整的演示了企业应用的各个方面,是一个电子商务网站的应用 SpringSide也大量参考了Appfuse中的优秀经验。最重要的是它是国内的一个开源项目,能够了解到国内如今的一些实际技术动态和方向颇有指导意义…
主要有Veloctiy和Freemarker
模板用Servlet提供的数据动态地生成 HTML.编译器速度快,输出接近静态HTML 页面的速度。
我所知道比较出名的主要有JBpm Shark Osworkflow,因为对它没有过多的研究因此还不是很清楚之间有什么区别。
dotProject:是一个基于LAMP的开源项目管理软件。最出名的项目管理软件
JIRA: 项目计划,任务安排,错误管理
Bugzilla:提交和管理bug,和eclipse集成,能够经过安装MyEclipse配置一下便可使用
BugFree借鉴微软公司软件研发理念、免费开放源代码、基于Web的精简版Bug管理
CVS:这个就不介绍了都在用。
SVN: SubVersion已逐渐超越CVS,更适应于JavaEE的项目。Apache用了它好久后,Sourceforge刚刚推出SVN的支持。
测试用例:主要JUnit单元测试,编写TestCase,Spring也对Junit作了很好的支持