注解配置和XML配置的比较

注解配置与xml配置的区别:
xml配置:书写灵活,修改方便,单修改xml时不需要修改源码,不用重新编译和部署。但维护起来相对麻烦。是一种集中式的的元数据,与源代码无绑定。
注解配置:写起来比较简单方便,配置、维护简单,但是修改很麻烦。是一种分散式的的元数据,与源代码紧绑定。
关于xml
xml优点:

1.使用xml配置可以让软件更具有扩展性;
比如,我们在spring中,我们不想使用接口而是想用接口的实现类,这个时候只需要修改xml配置中bean的class值就可以了。

2.对象之间的关系一目了然;

3.xml定义:可扩展标记语言,标准通用标记语言的子集,简称XML。从这个定义中我们可以发现,xml最大的优势就在于,开发者(程序员)能够为软件量身定做使用的标记,使得xml更通俗易懂;

4.成熟的校验机制,来保证正确。可以使用Schema或者是DTD来对xml的正确性进行校验。

5.基于xml配置的时候,只需要修改xml即可,不需要对现有的程序进行修改。

6.容易与其他系统进行数据交互。数据共享方便
xml的缺点

1.应用程序中如果使用了xml配置,需要解析xml的工具或者是是第三方类库的支持。

2.解析xml的时候必然会占用资源,势必会影响到应用程序的性能;以java为例,无论是将xml一次性装置到内存中,还是一行一行读取解析的,都会占用资源的。

3.在程序编译期间无法对其配置项的正确性进行验证,只能在运行期发现。

4.出错后,排错变得困难。往往在配置的时候,一个手误就会出现莫名其妙的错误。

5.开发的时候,既要维护代码又要维护配置文件,使得开发的效率降低。

6.代码与配置项之间有时候会存在很多“潜规则”.改变了任意一方,都有可能影响到另一方的使用。这是个大坑。比如:自定义的标记,如果其他开发不清楚这些的话,修改了无论是代码还是xml的配置,都会导致程序不能正常运行。

7.开发工具对xml的验证支持的不是很好。比如idea,对xml正确性,如果是自定义的,验证就不是很好。

关于注解
注解的优点
1.注解的解析可以不依赖于第三方库,可以之间使用Java自带的反射。

2.注解和代码在一起的,之间在类上,降低了维护两个地方的成本。

3.注解如果有问题,在编译期间,就可以验证正确性,如果出错更容易找。

4.使用注解开发能够提高开发效率。不用多个地方维护,不用考虑是否存在“潜规则”。

5.xml配置起来有时候冗长,此时注解可能是更好的选择,如jpa的实体映射;注解在处理一些不变的元数据时有时候比XML方便的多,比如springmvc的数据绑定,如果用xml写的代码会多的多;

6.注解最大的好处就是简化了XML配置;其实大部分注解一定确定后很少会改变,所以在一些中小项目中使用注解反而提供了开发效率,所以没必要一头走到黑;

7.注解相对于XML的另一个好处是类型安全的,XML只能在运行期才能发现问题。
注解的缺点
1.修改的话比较麻烦。如果需要对注解进行修改的话,就需要对整个项目重新编译。

2.处理业务类之间的复杂关系,不然xml那样容易修改,也不及xml那样明了。

3.在程序中注解太多的话,会影响代码质量,代码简洁会有影响。

4.如果后来的人对注解不了解,会给维护带来成本。

5.注解功能没有xml配置齐全。
总结
注解优点:简化配置,使用起来直观且容易,提升开发的效率,类型安全,容易检测出问题
缺点:修改起来比xml麻烦,如果不项目不了解,可能给开发和维护带来麻烦
Xml优点:把类与类之间松解偶;修改方便;容易扩展,容易和其他系统进行数据交互,对象之间的关系一目了然
缺点:配置冗长,需要额外维护;影响开发效率,类型不安全,校验不出来,出错不好排查

注解配置与xml配置都有各自的优缺点,没有那个是比对方更好的,只有在合适的地方选择合适的配置才是最优的。

你可能感兴趣的:(java)