Java从起初发展到现在也已经有十年了,Java平台也变得越来越成熟了,并已成为许多专业和组织开发应用程序首选的语言。
最新发布的企业版本-Java EE 5,设计者们特别强调了该版本能够以最少的努力来做更多的事,因此,无论你是一个有开发经验的专家还是初学者,你都有可能在该版本中发现一些新的方法,这些方法简化了你的开发。本篇将会讨论Java EE 5 的一些优点。
注释:元数据和描述符
POJO输入验证
Java EE 5
public class User ...{
private String password;
@MinLength(5)
@MaxLength(20)
public void setPassword(String password) ...{
this.password = password;
}
public String getPassword() ...{
return password;
}
} |
Pre Java EE 5
public class User ...{
private String password;
public void setPassword(String password) throws Exception ...{
if ((newPassword != null) && (newPassword.length() > 20))
throw new Exception();
this.password = password;
}
public String getPassword() ...{
return password;
}
}
|
元数据是编程中非常重要的一个概念,它可以使开发者指定或改变位于实际程序逻辑外面的应用程序的代码行为。在先前的Java企业版本,这些通过XML文件来完成即大家所熟悉的开发描述符来完成。然而,这就允许行为的可定制化,它甚至强迫最简单的应用程序来完成不管是否需要元数据的请求。
在Java EE 5中,元数据可以直接嵌入到应用程序的代码中--一个属性编程的过程。在附加的XML描述符中被指定的要求也可以使用内嵌的描述符中来完成,并提供了一个新型的开发过程,使用开源项目XDoclet的用户可能与这个概念有关系。
这并不是说XML描述符在Java EE 5中就没有用了,事实上,XML描述符对任何在应用程序代码内声明的元数据来说提供了非常重要的机制,换句话说,Java EE 5应用服务器能够自动的将在部署描述符中声明的任何行为属性嵌入到这些在Java字节码中。
应该指出的是属性编程并不是在Java EE 5中新加的,而是Java标准版本(J2SE)的一部分,但是其增强的功能不能被忽视,不仅是因为对属性编程标记变化标准支持,而且还有许多与Java EE 5相关的领域。
注释在功能方面是开放的,以数据验证为例,在先前的Java版本中,数据验证或者使用手写的代码或者用特别的框架,如用Struts来验证输入。在Java EE 5中,我们可以使用Java注释。因此POJO看起来像下面的清单。
Use of Entity API with O/R annotations
@Entity(access=AccessType.FIELD)
public class AddressBook ...{
@Id(generate=GeneratorType.AUTO) long pk;
@ManyToOne Owner own;
@OneToMany(cascade=CascadeType.PERSIST) Set entries =
new HashSet();
Date enteredDate;
protected AddressBook() ...{ }
public AddressBook(Owner own) ...{ this.own = own; }
public void addEntry(Entry entry) ...{ entries.add(entry); }
public Set getEntries() ...{ return entries; }
public Owner getOwner() ...{ return own; }
public void enteredAddressBook() ...{ enteredDate = new Date(); }
}
|
先前的注释在O/R设计上呈现了特殊的行为,关系数据桥被Java EE 5应用服务器来执行,反之,企业可以在基于普通标准上选择更好的实现种类。对这些使用商业O/R来处理fragmented/proprietary来说特别重要,如开源项目Hibernate。
继续讨论EJB3.0的持久API,另一个功能是操作Java EE容器的上下文,在标准的Java环境(J2SE)中有效的创建通用目的的持久化API,Sun证实了这种可能性,即同样的持久化API能够拖延EJB3.0到自己的工作组/JSR中。这并不与Java EE 5的主题相背离。
返回到先前的代码清单,你可能会发现,我们处理一个POJO,这是与EJB3.0组件一起工作的,不仅是实体,而且session bean和messaging bean。在Java EE 5中使用POJO有两个优点:测试和简化。
[1] [2] 下一页