注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

annotation注解方式与XML配置文件方式如何正确使用  

2012-11-27 17:47:33|  分类: spring |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
           annotation注解方式与XML配置文件方式如何正确使用


在大多数已经接触过annotation注解和XML配置文件的同行来说,有时候都会遇到到底什么情况下用注解,什么情况下使用配置文件呢,今天在这里大家一起探讨一下这两个的优缺点,并给出一部分应用场合的使用推荐。

一、annotation注解方式
Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件中出现。
Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。
优势:
1.annotation可以用枚举,用class,常量定义等。
2.有效减少配置的工作,提高开发效率
3.不需要第三方的解析工具,利用java反射技术就可以完成任务。
4.编辑期可以验证正确性,差错变得容易。
5.配置信息和 Java 代码放在一起,有助于增强程序的内聚性。
劣势:
1.修改后,需要进行编译。
2.分散到各个class文件中,修改起来不太容易。
3.如果在程序中annotation比较多,直接影响代码质量,对于代码的简洁度有一定的影响。

二、XML配置文件方式

优势:
1.容易编辑,可以使用任意的文本编辑器就可以了。
2.配置文件比较集中,找到修改一下就好了。
3.经常使用配置文件的接触的比较快。技术难度不高。
4.XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。 
5. 在处理大的业务量的时候,用XML配置应该更加好一些。因为XML更加清晰的表明了各个对象之间的关系,各个业务类之间的调用。同时spring的相关配置也能一目了然。 
劣势:
1.采用独立的 XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。
2.配置文件读取和解析需要花费一定的时间,配置文件过多的时候难以管理,无法对配置的正确性进行校验,增加了测试难度。 

三、使用场景

1. 如果要求不停止程序,修改配置文件就能生效。 那务必选择配置文件,不用annotation注解形式。

2. 如果配置在生产环境中修改比较多,用配置文件。如果在开发环境中修改很多,运行环境中不会修改,用annotation注解形式。

3. 无法用annotation注解形式,当然不要尝试用annotation注解形式了,如你还在用jdk1.4。

4. 性能要求很高的地方,优先考虑配置文件。

5. 团队合作中,优先考虑annotation注解形式,配置文件没有文章说明的话,是很难理解的,annotation注解形式没有文档说明的时候,相当还容易理解一些。

6. 如果 Bean 的依赖关系是固定的。(如 Service 使用了哪几个 DAO 类),这种配置信息不会在部署时发生调整,那么注释配置优于 XML 配置;反之如果这种依赖关系会在部署时发生调整,XML 配置显然又优于注释配置,因为注释是对 Java 源代码的调整,您需要重新改写源代码并重新编译才可以实施调整。 

7. 如果 Bean 不是自己编写的类(如 JdbcTemplate、SessionFactoryBean 等),注释配置将无法实施,此时 XML 配置是唯一可用的方式。 

8. 注释配置往往是类级别的,而 XML 配置则可以表现得更加灵活。比如相比于 @Transaction 事务注释,使用 aop/tx 命名空间的事务配置更加灵活和简单。

四、总结:

在实现应用中,我们往往需要同时使用注释配置和 XML 配置,对于类级别且不会发生变动的配置可以优先考虑注释配置;而对于那些第三方类以及容易发生调整的配置则应优先考虑使用 XML 配置。Spring 会在具体实施 Bean 创建和 Bean 注入之前将这两种配置方式的元信息融合在一起。 

  评论这张
 
阅读(1074)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016