分享
 
 
 

JavaEE5.0:使J2EE开发变得容易一些

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

任何J2EE 开发者都知道开发Java 有多难。新的Java EE 5.0将使你的开发过程变得容易一些。Java EE 5.0具有Web 服务支持、注释和增强的CMP性能。

要开发一个简单的J2EE应用程序,程序员必须要写大量的样本文件代码(如JavaBeans企业版)和设定无数个配置文件(XML中的描述文件)。所以要成为一个J2EE开发者,程序员必须熟悉EJB和XML。对于初学者来说,这些将令他们望而生畏。

目前的J2EE说明书(1.4)非常长,是用较老的JDK 1.2版本写的,这使J2EE更加复杂难懂。新的JDK版本提供了丰富的、简单好用的性能,比如J2SE 5.0的一般性能和注释支持。

即将推出的Java EE 5.0的一个主要目的就是,既保持J2EE强大的功能,又可以使一般的开发任务变得容易一些。为了达到这个目的,Java EE 5.0将提供更好的默认性态和设置,允许大多数容器无需使用部署描述符就可以得到需要的东西。为此,Java EE 5.0做了很多注释。开发者不需要知道执行的细节(由容器完成执行任务)。这些新性能都使企业的Java应用程序更小、更快。

本文揭示了J2EE开发者期待已久的Java EE 5.0的新性能。首先让我们来简单地看一下注释。

[作者提示:由于 J2EE 的最新版本是Java EE 5.0,因此下文中Java EE指新版本,J2EE 指老版本]

Java 注释

注释是一种修饰符,在你可以使用其它修饰符(比如public, static, 或 final)的任何地方都可以使用注释。按规定,注释优先于其它修饰符。它包括一个@)符号,@后接注释类型和被括号括起来的元素值对。这些值必须是编译时间常量。也就是说 Java本身就提高了注释信息的详细列表。注释并不直接影响程序的语义,但它影响工具和库处理程序的方式,从而对运行的程序的语义产生影响。注释可从源文件、class文件中阅读,也会在运行时得到反映。将定义从执行中分离出来并提供一种可以内省约束的方式,这使得执行过程更加灵活。

大多数Java开发者已经很熟悉注释了,比如所有的JavaDoc标签和瞬时标签都是注释的例子。

EJB入口的注入

在目前的J2EE体系下,为了揭示任何一个业务方法,必须为home接口和远端接口提供EJB包装。但在Java EE 5.0中,你可以使用EJB注释为程序组件的任意字段或方法进行注释。注释本身就是EJB session bean的参考。基准可以是EJB session bean的本地或远端home接口,也可以是EJB3 bean的业务接口。

举例来说,下面的代码使用注释将一个PurchaseOrder归到EJB中:

@EJB private PurchaseOrder po;

@EJB(

ame = "ejb/myEnterpriseApp",

beanName = "po1",

eanInterface ="PurchaseOrder.class",

description =" The Purchase Order for my enterprise application"

)

rivate PurchaseOrder po;

Enterprise Bean将用JNDI查找这个名称java:comp/env/ejb/po。由于并不清楚目标名称在哪里,容器比较解决目标。

是不是很酷呀!现在,通过向现有的业务方法注入EJB注释,然后将它们部署到适用于Java EE 5.0 的容器中,这样你马上就可以把现有的程序加入到ava EE程序中!

为了避免当部署描述符和注释一起时会出现冲突,容积会优先使用部署描述符而忽略注释。这个性能可以使现在的J2EE程序移植到("as-is")Java EE 5.0适用的容器。

增强部署描述符:注入环境条目

和部署描述符中的标签一起,Java EE 5.0提供了一个新的标签,可以使程序组件代码能够访问业务字段。另外一个方法也可以达到这样的效果,即使用@Resource注释标签,可谓殊途同归。

举例来说,下面的代码,使用注释将一个订购单中的商品数量限制为10:

// can be configured from the deployer

@Resource int numberOfItems;

ublic void validatePO(PurchaseOrder po) throws NumberOfItemsException

{

if(po.getItemCount() numberOfItems)

throw new NumberOfItemsException("My PO cannot have more than 10 items");

}

使用部署描述符也可以达到同样的目的:

Number of Items in my PO

numberOfItems

java.lang.Integer

10

Looking up this value:

Context initContext = new InitialContext();

Context myEnv = (Context) initContext.lookup("java:comp/env");

Integer NumOfItems = (Integer) myEnv.lookup("numberOfItems");

当使用注释或标签向代码中注入环境条目时,容积就有了查找这些值的职责。

新CMP标签

Java EE 5.0提供了许多容器管理持久性(CMP)的新标签。开发者只需指定表格的名称和列的名称,其它的由容器完成。在下面的例子中,@Table指定帐目类数据将储存在ACCOUNT表格中:

@Entity

@Table(name = "ACCOUNT")

ublic class Account

implements java.io.Serializable {

@Id

public String getUserId() {

return userId;

}

@Embedded

public ContactDetails getContactDetails() {

return info;

}

@Column(name="FIRSTNAME")

public String getGivenName(){

return givenName;

}

}

开发者可以使用@Column标签,从而使表格中列的名称更加合理。

Java EE服务器中的Web服务

Java EE 5.0的主要目标是提供一个易学、好开发的Web服务模型。它提供的Web服务基础设施可以使开发者能够建立强大的、可持续的、高度共用的集成应用程序。Java EE 5.0推出Web Services Metadata,这使一个易学的在Java EE平台的源代码水平描述Web服务的句法。可以使用工具处理这种句法。下面例子中的代码执行了一项Web服务:

@WebService(name="MyPOIntf", targetNamespace = "urn:MyPurchaseOrderService")

@SOAPBinding(style = SOAPBinding.Style.RPC)

ublic interface MyPOIntf extends Remote {

@WebMethod

@WebResult(name="result")

public String submitPODetails(String poXmlString)

throws

RemoteException;

}

首先,用WebService注释定义一个终端接口,然后就可以通过通过执行这个接口而执行各种功能。

对很多经验丰富的Java开发者,Web服务也依然很神秘。Java EE 5.0将使他们能够轻松地开发并将现有的企业业务程序部署到Web服务程序中。再过半年到一年Java EE 5.0就会上市,我相信届时IT市场上将涌现出大批Java EE Web服务开发者。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有