XML与注释:分析方法

时间:2009-09-29 06:59:19

标签: xml hibernate spring configuration annotations

我打算使用Pugh Decision Matrix分析性地就这一长期存在的关于最佳方法的辩论作出决定(虽然只有学术兴趣,但很难偏袒)。

我邀请您为这两种方法之间的比较建议适当的标准。

4 个答案:

答案 0 :(得分:3)

在注释方面:

  • 维护较少的文件
  • 持久性信息的接近度

在XML方面:

  • 分离关注
  • 持久性的正交性(对同一类具有多个不同映射的能力)

答案 1 :(得分:2)

我对标准的建议:

  1. 能够在中心位置更改配置(使用xml很容易,带注释很难)
  2. 每种机制(方法,类名,结构等方面的变化)如何适应变化
  3. 效率(我必须怎样写作)
  4. 但这是一个有趣的练习,但最终它取决于你正在创建的bean的背景和目的。

    例如,在spring和annotations的上下文中: 要配置批次的“workhorse”bean(不需要自定义或访问第三方资源的标准bean),注释会失败。我知道,我必须使用xml来配置这些,这是一场噩梦,幸运的是我们有xdoclet形式的伪注释帮助了。这里的主要区别在于,当使用注释时,您不必指定类的详细信息,这已经是已知的。

    但是接下来我要配置bean的另一个上下文;更改属性,插入不同的bean,创建已存在的类的实例,访问第三方资源(jndi资源等)或配置实体管理器 - xml是唯一的方法。在这种情况下,我通常无法访问类的源代码,我正在从库中创建bean。

答案 2 :(得分:0)

我提出了以下标准(方括号中的数字表示10的等级的权重,数字越大表示更重要):

  1. 开发人员易用性/效率[7]
  2. 代码可读性[8]
  3. 架构问题(关注点分离) [9]
  4. Code Maintenability [6]
  5. 对变更的适应性(对元数据进行更改有多容易?) [6]
  6. 运行时间与编译时间[4]
  7. 可插入代码(需要针对不同数据库或DEV环境的不同配置文件;针对具有不同模式的两个不同数据库映射类) [5]
  8. 代码重构(重构有多容易?) [5]
  9. 参考/学习资料[3]
  10. 元数据冗余[5]
  11. 应用程序可移植性[5]
  12. API支持[2]

答案 3 :(得分:0)

如果您希望代码

,则很简单      - 紧密耦合(开发人员应该很好地理解应用程序的流程(即可读性)并且易于升级/增强)使用注释

- <b>Loosely coupled</b> and configs used across the application <b>use XML</b>