




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库1持久层:1)Hibernate这个不用介绍了,用的很频繁,用的比较多的是映射,包括继承映射和父子表映射对于DAO在这里介绍个在它基础上开发的包bba96,目前最新版本是bba96 2.0它对Hibernate进行了封装, 查询功能包括执行hsql或者sql查询/更新的方法,如果你要多层次逻辑的条件查询可以自己组装QueryObject.可以参考它做HibernateDAO.也可以直接利用它2) iBATIS另一个ORM工
2、具,Apache的,没有Hibernate那么集成,自由度比较大2:SpringMVC原理说明和快速入门:配置文件为:Spring的配置文件默认为WEB-INF/xxxx-servelet.xm其中xxx为web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name。Action分发:Spring将按照配置文件定义的URL,Mapping到具体Controller类,再根据URL里的action= xxx或其他参数,利用反射调用Controller里对应的Action方法。输入数据绑定:Spring提供Binder
3、 通过名字的一一对应反射绑定Pojo,也可以直接从request.getParameter()取数据。输入数据验证Sping 提供了Validator接口当然还可以使用开源的Commons-Validaor支持最好Interceptor(拦截器)Spring的拦截器提供接口需要自己编写,在这点不如WebWork做的好.全面 (这里提一下WebWork和Struts的区别最主要的区别在于WebWork在建立一个Action时是新New一个对象而Struts是SingleMoule所有的都继承它的一个Action,所以根据项目需要合适的选择.)3:View层1) 标签库:JSP2.0/JSTL由于
4、Webwork或Spring的标签确实很有限,一般view层用JSTL标签,而且据说JSTL设计很好速度是所有标签中最快的使用起来也很简单2) 富客户端:DOJO Widgets, YUI(YahooUI),FCKEditor, Coolest日历控件Dojo主要提供Tree, Tab等富客户端控件,可以用其进行辅助客户端开发YahooUI和DOJO一样它有自己的一套javascript调试控制台,主要支持ajax开发也有很多Tree,Table,Menu等富客户端控件FCKEditor 最流行的文本编辑器Coolest日历控件 目前很多日历控件可用,集成在项目中也比较简单,这个只是其中的一个
5、,界面不错的说.3) JavaScript:Prototype.jsPrototype.js作为javascript的成功的开源框架,封装了很多好用的功能,通过它很容易编写AJAX应用,现在AJAX技术逐渐成熟,框架资源比较丰富,比如YUI,DWR等等,也是因为JavaScript没有合适的调试工具,所以没有必要从零开始编写AJAX应用,个人认为多用一些成熟的Ajax框架实现无刷新更新页面是不错的选择.4)表格控件:Display Tag ,Extreme Table这两个的功能差不多,都是View层表格的生成,界面也比较相向,可以导出Excel,Pdf,对Spring支持很容易.相比较而言比
6、较推荐ExtremeTable,它的设计很好功能上比DisplayTag多一些,支持Ajax,封装了一些拦截器,而且最方面的是在主页wiki中有详细的中文使用文档.5):OSCacheOSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统的稳定性和运行性能。它主要用在处理短时间或一定时间内一些数据或页面不会发生变化,或将一些不变的统计报表,缓冲在内存,可以充分的减轻服务器的压力,防治负载平衡,快速重启服务器(通过硬盘缓存)
7、.6)SiteMeshsitemesh应用Decorator模式主要用于提高页面的可维护性和复用性,其原理是用Filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, scripts and footer,现在,在sitemesh的帮助下,我们删掉他们轻松达到复合视图模式.Sitemesh也是 OpenSymphony的一个项目现在最近的版本是2.2,目前OpenSymphony自从04年就没有更新的版本了.感觉它还是比较有创新
8、的一种页面组装方式, OpenSymphony开源组织的代码一般写的比较漂亮,可以改其源代码对自己的项目进行适配.测试发现Sitemesh还存在一些问题,比如中文问题,它的默认编码是iso-8859-1在使用时候需要做一些改动.7)CSS,XHTML这个不用说了,遵循W3C标准的web页面开发.8)分页标签: pager-taglib组件Pager-taglib 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离.使用起来也比较简单.9)Form: Jodd Form taglibJodd Form taglib使用比较简单,只要把form的头尾以包
9、住就会自动绑定mybean, 自动绑定mybean的所有同名属性到普通html标记input, selectbox, checkbox,radiobox.在这些input框里不用再写任何代码10)Ajax:DWRJ2EE应用最常用的ajax框架11)报表 图表Eclipse BIRT功能比较强大,也很庞大.好几十M,一般没有特别需求或别的图表设计软件可以解决的不用它JasperReports+ iReport是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。Jasper
10、Reports是当前Java开发者最常用的报表工具。JFreeChart主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。琴棋报表,国产的.重点推荐,适合中国的情况,开放源代码,使用完全免费。纯JAVA开发,适用多种系统平台。特别适合B/S结构的系统。官方网站有其优点介绍,看来用它还是不错的选择,最重要的是支持国产呵呵4:权限控制: AcegiAcegi是Spring Framework 下最成熟的安全系统,它提供了强大灵活的企业级安全服务,如完善的认证和授权机制,Http资源访问控制,Method 调
11、用访问控制等等,支持CAS(耶鲁大学的单点登陆技术,这个单点登陆方案比较出名.我也进行过配置使用,可以根据项目需要,如果用户分布在不同的地方不同的系统通用一套登陆口令可以用它进行解决,一般注册机登陆机就是这样解决的)Acegi只是于Spring结合最好的安全框架,功能比较强大,当然还有一些其他的安全框架,这里列举一些比较流行的是我从网上找到的,使用方法看其官方文档把JAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架.真够多的呵呵5:全文检索1) LuceneLucene是一
12、套全文索引接口,可以通过它将数据进行倒排文件处理加入索引文件,它的索引速度和查询速度是相当快的,查询百万级数据毫秒级出结果,现在最火的Apache开源项目,版本更新速度很快现在已经到了2.0,每个版本更新的都比较大,目前用的最多的版本应该是1.4.3,但它有个不太方面的地方单个索引文件有2G文件限制,现在2.0版本没有这个限制,我研究的比较多,它的扩展性比较好,可以很方面的扩充其分词接口和查询接口.基于它的开发的系统很多,比如最常用的Eclipse的搜索功能,还有一些开源的软件比如Compass,Nutch,Lius,还有我最近做的InSearch(企业级FTP文件网页搜索) 6:公共Util
13、类主要是Jakarta-Commons类库,其中最常用得是以下几个类库1) Jakarta-Commons-Language最常用得类是StringUtils类,提供了使用的字符串处理的常用方法效率比较高2) Jakarta-Commons-Beantuils主要用Beantuils能够获得反射函数封装及对嵌套属性,map,array型属性的读取。3) Jakarta-Commons-Collections里面有很多Utils方法7 日志管理Log4J任务是日志记录,分为Info,Warn,error几个层次可以更好的调试程序8 开源的J2EE框架1) AppfuseAppfuse是Matt
14、Raible 开发的一个指导性的入门级J2EE框架, 它对如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基础框架给出了示范. 在持久层,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring,用户可以自由选择Struts、Spring/MVC,Webwork,JSF这几个Web框架。2) SpringSide.SpringSide较完整的演示了企业应用的各个方面,是一个电子商务网站的应用 SpringSide也大量参考了Appfuse中的优秀经验。最重要的是它是国内的一个开源项目,可以了解到国内现在的一
15、些实际技术动态和方向很有指导意义9:模版 Template 主要有Veloctiy和Freemarker模板用Servlet提供的数据动态地生成 HTML。编译器速度快,输出接近静态HTML 页面的速度。10:工作流我所知道比较出名的主要有JBpm Shark Osworkflow,由于对它没有过多的研究所以还不是很清楚之间有什么区别.项目管理软件dotProject:是一个基于LAMP的开源项目管理软件。最出名的项目管理软件JIRA: 项目计划,任务安排,错误管理Bugzilla:提交和管理bug,和eclipse集成,可以通过安装MyEclipse配置一下即可使用BugFree借鉴微软公司
16、软件研发理念、免费开放源代码、基于Web的精简版Bug管理CVS:这个就不介绍了都在用.SVN: SubVersion已逐渐超越CVS,更适应于JavaEE的项目。Apache用了它很久后,Sourceforge刚刚推出SVN的支持。测试用例:主要JUnit单元测试,编写TestCase,Spring也对Junit做了很好的支持后记:以Spring为主的应用开发可选用的组件中间件真是眼花缭乱,所以针对不同的项目需求可以利用不同的开源产品解决,比如用Spring+Hibernate/ iBATIS或Spring+WebWork+Hibernate/ iBATIS或Spring+Struts+Hi
17、bernate/ iBATIS,合理的框架设计和代码复用设计对项目开发效率和程序性能有很大的提高,也有利于后期的维护.一、JavaServlet和JSP方向很多人都是从Servlet和JSP步入J2EE的。它就是J2EE的表现层,用于向客户呈现服务器上的内容。J2EE很重要的方面。不罗嗦了!大 家都知道的!下面就开始推荐吧!1. Jakarta TomcatApache基金会提供的免费的开源的Serlvet容器,它是的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司(都 是IT界的大鳄哦)及个人共同开发而成,全世界绝大部分Servlet和Jsp的容器都是使用它哦!由于S
18、un的参与和支持,最新的Servlet和 Jsp规范总能在Tomcat中得到体现。不过它是一个非常非常全的Serlvet容器,全部源码可能有4000页,对于初学者或者一般的老手可能还是比较大了!在你有能力时推荐研究!下载 地址:/tomcat/index.html下面推荐两个小一点的吧!2. JettyJetty是一个开放源码的HTTP服务器和Java serverlet容器。源代码只有1000页左右,很值得研究。有兴趣可以去 一下,只是目前没有时间。(都化在博客上了,等博客基本定型,且内容完整了,再干我热衷的事件吧!)3. JigsawJigs
19、aw是W3C开发的HTTP,基于Java 的服务器,提供了未来 Web 技术发展的蓝图。W3C知道吧!(太有名气了,很多标准都是它制订的!有空经常去看看吧!)下载网址:/Jigsaw 代码仅仅1000页左右。4. Jo!Jo!是一个纯Java的实现了Servlet API 2.2, JSP 1.1, 和HTTP/1.1的Web服务器。它的特性包括支持servlet tag,支持SSI,高级线程管理,虚拟主机,数据缓存,自动压缩text或HTML文件进行传输,国际化支持,自动重新加载Servlet、Jsp,自 动重新加载web工程文件(WARs),支持WAR热部署
20、和一个Swing控制台。jo!可以被用做jboss和jakarta avalon-phoenix的web容器。下载地址 。我极力推荐大家在研究Tomcat之前研究该软件,主要是其比Tomcat小多了,且开发者提供比较全的手册。该方向研究这两个也就可以了!二、JDBC方向很多人都喜欢JDBC,数据库吗!很深奥的东西,一听就可以糊弄人。其实等你真正研究了数据库的实现后发现,接口其实真的太简单,太完美了!要想设 计如此优秀的框架还是需要学习的。下面就推荐几个数据库的实现吧!1. Hypersonic SQLHypersonic SQL开源数据库方向比较流行的纯Java开发的关系型数据库。好像不是JD
21、BC兼容的,JDBC的很多高级的特性都没有支持,不过幸好支持ANSI- 92 标准 SQL语法。我推荐它主要是它的代码比较少1600页左右,如此小的数据库值得研究,而且他占的空间很小,大约只有160K,拥有快速的数据库引擎。推荐 你的第一个开源数据库。下载地址:2. Mckoi DataBaseMcKoiDB 和Hypersonic SQL差不多,它是GPL 的license的纯Java开发的数据库。他的 JDBC Driver 是使用 JDBC version 3 的 Specifaction。 他也是遵循 SQL-92 的标准,也尽量支持新的 SQL 特色, 并且支持 Transactio
22、n 的功能。两个可以选一个吧!下载地址:3. Apache Derby学Java的数据库我建议使用Apache Derby ,研究数据库想成为一个数据库的高手我建议你先研究Apache Derby。Apache Derby是一个高质量的、纯 Java开发的嵌入式关系数据库引擎,IBM® 将其捐献给Apache开放源码社区,同时IBM的产品CloudSpace是它对应的产品。Derby是基于文件系统,具有高度的可移植性,并且是轻量 级的,这使得它非常便于发布。主要是没有商业用户的很好的界面,没有其太多的功能。不过对于我们使用数据库、研究数据库还是极其有用的。对于中小型的企业 说老实话你
23、也不要用什么Oracle、SqlServer了,用Derby就可以了,何况是开源的呢!只要能发挥其长处也不容易啊!下载地 址:/derby。不过在没有足够的能力前,不要试图读懂它!注释和源代码15000页左右,我一年的阅读量!能读下来并且能真正领会它,绝对高手!你能读完 Derby的源代码只有两种可能:1.你成为顶尖的高手至少是数据库这部分; 2.你疯了。选择吧!作为我自己我先选择Hypersonic SQL这样的数据库先研究,能过这一关,再继续研究Derby!不就是一年的阅读量吗!我可以化3年去研究如何做一个数据库其实还是很值得的!有的人搞
24、 IT一辈子自己什么都没有做,也根本没有研究别人的东西!作为一个IT落后于别国若干年的、从事IT的下游产业“外包”的国家的IT从业人员,我认为还是先研究别人的优秀的东西比较好!可以先研究别人的, 然后消化,学为己用!一心闭门造车实在遗憾!三、JMS方向JMS可能对大家来说是一个比较陌生的方向!其实JMS是一个比较容易理解,容易上手的方向。主要是Java消息服务,API也是相当简单的。不过 在企业应用中相当广泛。下面就介绍几个吧!1. MOM4JMOM4J是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02。它提供了自己的消息处理存储使它独立于关系数据与语 言,它的客户端
25、可以用任何语言开发。它可以算是一个小麻雀,很全实现也比较简单!它包含一个命名服务器,一个消息服务器,同时提供自己的持续层。设计也相 当的巧妙,完全利用操作系统中文件系统设计的观念。代码也很少,250页左右,最近我在写该实现的源代码阅读方面的书,希望明年年中能与大家见面!下载地 址:2. OpenJMSOpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性:1. 它既支持点到点(point-to-point)(PTP)模型和发布/订阅(Pub/Sub)模型。2. 支持同步与异步消息发送 。3. JDBC持久性管理使用数据库表来存储消息
26、 。4. 可视化管理界面。5. Applet支持。6. 能够与Jakarta Tomcat这样的Servlet容器结合。7. 支持RMI, TCP, HTTP 与SSL协议。8. 客户端验证 。9. 提供可靠消息传输、事务和消息过滤。很好的JMS方向的开源项目!我目前也在研究它的源代码!学习它可以顺便研究JNDI的实现、以及网络通信的细节。这是我JMS方向研究的第二个开 源项目。代码量1600页左右吧!下载地址:3. ActiveMQActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并实现了JMS 1.1。它能够与Geronimo,轻量级容器和任Java应用程序无缝
27、的给合。主要是Apache的可以任意的使用和发布哦!个人比较喜欢Apache 的源代码!下载地址:/4. JORAMJORAM一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。ObjectWeb的产品也是非常值得研究的!下面我还会给 大家另外一个ObjectWeb的产品。下载地址:/我个人推荐:OpenJMS和ActiveMQ!四、EJB方向EJB一个比较“高级”的方向。Sun公司曾经以此在分布式计算领域重拳出击。不过自从出现了Spring、Hibernation后似乎
28、没落 了!这个方向单独开源的也比较少,主要EJB是和JNDI、JDBC、JMS、JTS、JTA结合在一起的是以很少有单独的。下面推荐两个不过好像也要下 载其它类库。1. EasyBeansObjectWeb的一个新的项目,一个轻量级的EJB3容器,虽然还没有正式发布,但是已经可以从它们的subversion仓库中检出代码。代 码量比较小600页左右,熟读它可以对网络编程、架构、RMI、容器的状态设计比较了解了!即学会EJB又能学习其它设计方法何乐而不为哦!下载地 址:/2. OpenEJBOpenEJB是一个预生成的、自包含的、可移植的
29、EJB容器系统,可以被插入到任意的服务器环境,包括应用程序服务器,Web服务器,J2EE平 台, CORBA ORB和数据库等等。OpenEJB 被用于 Apple的WebObjects。听起来很好,我目前没有研究过。不知道我就不推荐了。下载地址:/五、J2EE容器上面谈了这么多,都是J2EE的各个方向的。其实J2EE是一个规范,J2EE的产品一般要求专业提供商必须提供它们的实现。这些实现本身就是 J2EE容器。市场上流行的J2EE容器很多,在开源领域流行的只有很少,很少。其中最著名的是JBoss。1. JBoss在J2EE应用服务器领域,Jboss是
30、发展最为迅速的应用服务器。由于Jboss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得 Jboss广为流行。另外,Jboss应用服务器还具有许多优秀的特质。其一,它将具有革命性的JMX微内核服务作为其总线结构;其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的积极反馈告诉我 们,Jboss应用服务器是健壮的、高质量的,而且还具有良好的性能。为满足企业级市场日益增长的需求,Jboss公司从2003年开始就推出了 24
31、*7、专业级产品支持服务。同时,为拓展Jboss的企业级市场,Jboss公司还签订了许多渠道合作伙伴。比如,Jboss公司同HP、 Novell、Computer Associates、Unisys等都是合作伙伴。在2004年6月,Jboss公司宣布,Jboss应用服务器通过了Sun公司的J2EE认证。这是Jboss应用服务器发展史上至今为止最重要的 里程碑。与此同时,Jboss一直在紧跟最新的J2EE规范,而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,还是在开源社 区,Jboss成为了第一个通过J2EE 1.4认证的主流应用服务器。现在,Jboss应用服务器已经真正发展成具
32、有企业强度(即,支持关键级任务的应用)的应用服务器。Jboss 4.0作为J2EE认证的重要成果之一,已经于2004年9月顺利发布了。同时,Jboss 4.0还提供了Jboss AOP(Aspect-Oriented Programming,面向方面编程)组件。近来,AOP吸引了大量开发者的关注。它提供的新的编程模式使得用户能够将方面(比如,事务)从底层业务逻 辑中分离出来,从而能够缩短软件开发周期。用户能够单独使用Jboss AOP,即能够在Jboss应用服务器外部使用它。或者,用户也可以在应用服务器环境中使用它。Jboss AOP 1.0已经在2004年10月发布了。 很有名吧!可以下载一
33、个用一下,下载地址:/关于JBoss的使用资料也非常多,甚至比商业软件的还多。有机会研究吧!2. JOnASJOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合 Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。下载地址:/3.Apache GeronimoApache Geronimo 是 Apache 软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。 这些技术和理念大多源自独立的项目,配置和部署模型也各不相同。 Geronimo能将这些项目和方法的配置及部署完全整合到一个统一、易用的模型中。作为符合J2EE标准的服务器,Geronimo提供了丰富的功能集 和无责任 Apache 许可,具备“立
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025建筑公司借款合同
- 2025酒店管理承包合同协议书
- 2025水电安装工程施工合同模板
- 2025美容美发店员工股权激励合同
- 2025商业店铺租赁合同
- 2025关于个人信用担保合同
- 2025年杭州市劳动合同范本
- 2025建设工程设计合同建设工程合同范本DD
- 2025租赁合同租赁协议
- 2025土地使用权转让合同样本
- 2023年医疗机构消毒技术规范医疗机构消毒技术规范
- 2024年四川省自然资源投资集团有限责任公司招聘笔试参考题库附带答案详解
- 日式介护培训课件
- 面向多类型数据源的数据仓库构建及ETL关键技术的研究
- 景墙的施工技术方案
- 施工标准化九牌一图
- 单角子宫疾病演示课件
- 义务教育物理课程标准(2022年版)测试题文本版(附答案)
- FSSC22000V6.0体系文件清单
- 贾玲春晚搞笑公司年会小品《真假老师》台词剧本完整版
- 23S519 小型排水构筑物(带书签)
评论
0/150
提交评论