选择显示字体大小

什么是java ee 5

最近,sun的伙伴们(the folks at sun)将j2ee 1.5改名为java ee 5,当然以前j2ee版本还是称为j2ee,之所以改名,目的还是让大家清楚j2ee只是java企业应用,用我的话来说,j2ee就是java数据库服务器端的应用(见初学者如何开发出一个高质量的j2ee系统)。

看来,现在大多数人倾向于更加突出java了,j2ee容易让初学者误解是独立于一套java的技术方案。

从更深层次来看,java诞生十年来,很多近十年前的业务组件至今还可以使用,软件应用不再由于语言的更迭革命带来毁灭的打击了。

但是,随着webejb容器概念诞生,使得软件应用业开始担心sun的伙伴们是否还在java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要ejb的讨论声中说明了这种彷徨。

笔者曾经在2004年底中国软件技术大会ioc微容器(也就是jdon框架的实现原理)演讲中指出:我们需要一个跨j2se/web/ejb的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖j2se/j2ee版本,如下图:

此次j2ee改名为java ee,实际也反映出业界这种共同心声。

让我们看看java ee 5有哪些新的功能或规定,我们可以从sun网站下载java ee 5规范。其架构图如下:

图中灰色加黑部分是java ee 5新的功能,我们看到,在web层主要加入了jsf这个新的表现层框架,和我们日常开发关系密切的是,引入了新的java persistence标准,这个标准正在由ejb 3.0专家组制定。

值得指出的是,这个java持久化标准也可以嵌入在web层调用,所以,它肯定不会从属于ejb标准,这样,当前所有的java持久层标准如:jdbc/jdo/hibernate/entity bean将可能统一,减少用户的架构选择 痛苦。

从架构图可以看出,无论web结构或ejb结构,提供实现的功能相差不多,这样,我们的业务核心组件就可以根据需要部署在webejb中运行,而不依赖具体的java ee容器了。前面一章图的目标在java ee 5中可以实现了。

当然,java ee 5重要改变还是:java ee不再象以前那样只注重大型商业系统的开发,而是更关注小到中型系统的开发,简化这部分系统开发步骤。

落实这一简化行动的最大特征是在java 5.0(java 1.5)中加入annotations,通过annotations引入,降低java ee开发时,既要写code,又要写xml配置文件之苦,来回照顾,疲于奔命,annotations既是得益于c++语言,也是从开源项目xdoclet实践中获得经验。

但是annotations是一把双刃剑,初学者用得不好,将会使得原本在xml中的hard code(硬编码) 写进入代码annotations,破坏代码的简洁和灵活性,annotations讨论按这里。

当然,annotations的引入不只是解决xml配置,从大的概念说,是解决一个资源注射问题(xml属于其中一个资源),在原理j2ee中,容器管理的资源都是由jndi向应用程序提供的,现在通过annotations可以方便实现注射。

资源注射(resource injection)设计概念其实是来自ioc模式(dependency injection ),笔者设计开发的jdon框架其实已经将annotations这一宗旨的目的实现,在jdon框架应用演示源码simplejdonframeworktest中,在jdonframework.xml中有一段如下配置:

<pojoservice class="com.jdon.framework.test.dao.jdbcdao" name="jdbcdao">

<constructor value="java:/testds"/>

</pojoservice>

这段配置是将数据库的jndi名java:/testds注射到jdbcdao中。jdon framework下一个版本将是基于java 5.0,这行配置 将可通过 annotations写在jdbcdao代码中,方便程序员开发。

从这里,大家也可以知道ejb 3.0和ejb 2.0的区别了,有的人疑惑,是学习ejb 3.0还是学习ejb 2.0,其实ejb 3.0并没有在原理机制上对ejb有多大改动,只是做了编程方面的简化,另外ejb cmp参考了hibernate新特点,ejb 3.0最大简化变动是cmp编程方法上。所以,无论学习ejb 3.0/2.0,ejb原理和运行机制都是一样,这部分才是学习ejb最大的困难处,而不是因为到了ejb 3.0,理解ejb就会容易。

初学者可从eclipse+xdoclet开发ejb 2.0开始学习, ejb 3.0 = ejb 2.0 + xdoclet,这里有一篇eclipse开发ejb教程,使用jbosside非常简单,无需lomboz等插件。

security安全java ee的一个重要特点,也就是基于容器的安全访问,无需自己手工编码,具体实现可参考jdon框架应用演示源码jdonnews。这虽然是基于j2ee 1.3编写,但是和java ee 5区别不是很大。

事务管理transaction management也是java ee 5的一个重要部分,该标准文档 从几个方面阐述了事务管理的要点,标准中规定了在web层中使用事务和线程的处理关系,标准中规定:web服务器tomcat无需在web层提供事务支持,因为web组件根本不支持事务繁衍/传递。

因为目前一些架构如struts+spring+hibernate/struts+hibernate是标准中的web结构,因此java ee 5在j2ee 4.2.2规定了 web组件事务的生命周期,如果web组件直接调用jta,事务就不可以跨一个客户端的多个请求,事务只能在一个请求(servlet/jsp)中完成,这个标准规定了我们在web架构中(如上述架构)无法使用长事务(如工作流/状态图中跨页面请求事务),针对一个客户端跨请求的事务目前只有唯一解决方案:只有使用ejb的有态session。以上是java ee 5主要部分,java ee包含更多其他技术部分如jdbc jms jca jndi 等等,需要用户在实践中摸索。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons