3.3.3 面向属性的编程

Xdoclet项目为java带来了面向属性编程的概念。即使在JDK1.5,java仍然没有支持声明的方式;因此XDoclet使用Javadoc的标签(@attribute)去指定类或者方法级的元数据属性。

Xdoclet作为一个Ant task的实现或者作为编辑过程的XML元数据。使用XDoclet来创建Hibernate的元数据很直接;我们可以不用手写,直接在持久化类中使用Javadoc的标记即可,具体可以参照列表3.6.

列表3.6

/**

             *The Category class of the CaveatEmptor auction site domin model.

             *@hibernate.class

             *table=”CATEGORY”

*/           

public class Category{

….

/**

*@hibernate.id

*generator-class=”native”

*column='CATEGORY_ID'

*/

public Long getId(){

return id;

}

  ….

/**

*@hibernate.property

*/

public String getName(){

return name;

}

}

通过Ant和带注解的类,我们可以自动的生成和列表3.4中相同的XML文档。

看起来使用XDoclet会增加编译的步骤,但是鉴于大部分Java项目都使用Ant,所以这并不会带来什么问题。另外一种说法是XDoclet在部署阶段的可配置性差,但是这些都不能成为你手工书写XML文件的理由。最后,对于XDoclet标记的验证可能会带来一些问题,然而,通过JetBrains IntelliJ IDEA和Eclipse可以简单完成标记名称的自动拼写。

到现在为止,我们已经讨论了XML和XDoclet的方式。假定在部署阶段所有的映射信息我们都已经获取到了。如果在程序启动之前我们仍然有一些信息无法获取,那么我们是否可以在运行时通过编程的方式来处理映射的元数据呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值