读书人

基于Annotation模式的Bean装配

发布时间: 2012-12-21 12:03:49 作者: rapoo

基于Annotation方式的Bean装配

6.2.6? 基于Annotation方式的Bean装配

从JDK 5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范。在Java应用中,我们经常会遇到一些需要使用模板代码的情况。例如,为了编写一个JAX-RPC Web Service,我们必须提供一对接口和实现作为模板代码。如果使用Annotation对远程访问的方法代码进行修饰的话,这个模板就能够使用工具自动生成。另外,一些API需要使用与程序代码同时维护的附属文件。例如,JavaBeans需要一个BeanInfo Class与一个Bean同时使用/维护,而EJB则同样需要一个部署描述符,此时在程序中使用Annotation来维护这些附属文件的信息将十分便利而且减少了错误。

注释是以"@注释名"或"@注释名(参数名=参数值)"的形式在代码中存在的。例如,JDK 5内置的基本注释@Override 、@Deprecated 、@SuppressWarnings(value="unchecked")。注释可以附加在package、 class、method、 field等上面,相当于给它们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。如果没有外部解析工具等对其加以解析和处理的情况,本身不会对Java的源代码或class文件等产生任何影响,也不会对它们的执行产生任何影响。

在Spring中尽管使用XML配置文件可以完成所有的配置工作,直观表达Java EE程序员的"装配意图",但如果应用中Bean数量成千上万的话,最终会导致XML配置文件体积剧增,面对臃肿的XML配置文件,给维护与升级带来一定的困难。

那有没有一种行之有效的XML配置文件减肥方案呢?伟大的Spring开发团队想到了JDK 1.5提供的新特性--Annotation注释技术。从Spring 2.0开始,逐步完善对Annotation注释技术的全面支持,使XML配置文件不再臃肿,向"零配置"目标靠拢。

对于初学者而言,也许觉得Annotation注释技术太神秘了,随便放个注释就有如此巨大的威力。在了解了Annotation注释的工作原理之后,方觉得真正伟大的不是Annotation注释本身,而是幕后默默无闻地进行注释处理的Annotation处理器。Annotation注释仅仅是一个标记,用以表达程序员的某种意图,如果不为之量身开发一个Annotation处理器的话,Annotation注释本身将毫无意义,对程序也不会产生任何影响。Annotation处理器是基于JDK的反射机制来实现的,Spring 2.5中定义的一系列Annotation注释,如表6-4所示,幕后均有相应的Annotation处理器与之对应,最终实现Annotation注释的特定语义。

表6-4? Spring 2.5中常用的Annotation注释说明

读书人网 >编程

热点推荐