注解与XML,优缺点

15

我是java的新手,最近在学习注解和XML相关知识。个人认为XML有很多优点,比如可以将其放置在应用程序之外,并且可以在不重新编译类文件的情况下进行更改。如果我使用注解,如果需要进行更改,则需要打开源代码并重新编译。既然如此,为什么我们要使用注解呢?


听起来像是那种世界观或者意见可能会相互冲突的问题之一。 - Scorpio
3个回答

11

注解的优点:

1) 所有信息都在一个文件中(不需要打开两个文件来配置给定的行为)
2) 当类更改时,无需修改xml文件

XML文件的优点:

1) POJO和其行为之间有明确的分离
2) 当您不知道哪个POJO负责该行为时,更容易找到该POJO(在子集文件中搜索而不是所有源代码中搜索)


1
在某些情况下,“一个文件”可能有点过于乐观了。 - Scorpio
@Scorpio:你说得对,我将编辑我的答案以反映文件的子集,而不是所有文件。 - VirtualTroll

9

首先,我们使用注释进行的不仅仅是配置。

现在,使用注释进行配置的一些优点:

可读性。 例如,在JPA配置中使用注释声明新实体比使用hbm.xml文件更加清晰。这些内容只会在开发阶段更改,因此重新编译代码没有问题。当您使用xml文件时,您经常需要同时打开实体和hbm文件进行更改,这可能会导致一些错误。

灵活性。 在XML文件中,您必须以“唯一适当的方式”编写所有配置。这既是优点又是缺点。

长度。 基于XML的配置通常非常长(例如pom或hbm)。注释使用起来更简单。


4
这个问题其实很难简短回答。基本上,所有的配置形式都有其优缺点。注释、XML或基于Java的配置,所有的优缺点都是百分之百有效的。主要目标是保持一致性,确保项目中的每个人都遵循相同的规则。
这不是一个二选一的问题,而是可以在应用程序中使用任何组合的配置选项。可以使用其中一个或三种组合。只需制定规则并坚持执行即可。
所以,我的个人意见是:请记住,这只是我的个人意见,不是事实。
1)优先选择注释,因为我可以更快地进行配置和编码。 2)对于那些我无法注释的bean(它们不是我的类,因此我没有源代码添加注释),则选择基于Java的配置。 3)对于剩下的部分或需要完全外部化到我的类包之外的情况(极为罕见,我还没有遇到过这种情况),则使用XML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接