Spring的注解配置与XML配置之间的比较

注释配置相对于 XML 配置具备不少的优点: html

它能够充分利用 Java 的反射机制获取类结构信息,这些信息能够有效减小配置的工做。java

如:使用 JPA 注释配置 ORM 映射时,咱们就不须要指定 PO 的属性名、类型等信息,若是关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——由于这些信息均可以经过 Java 反射机制获取。 程序员

注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,spring

若是配置信息和 Java 代码放在一块儿,有助于加强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个功能时,每每须要在程序文件和配置文件中不停切换,这种思惟上的不连贯会下降开发效率。 工具

所以在不少状况下,注释配置比 XML 配置更受欢迎,注释配置有进一步流行的趋势。Spring 2.5 的一大加强就是引入了不少注释类,如今您已经可使用注释配置完成大部分 XML 配置的功能。 测试

 

注释配置和 XML 配置的适用场合 htm

是否有了这些 IOC 注释,咱们就能够彻底摒除原来 XML 配置的方式呢?答案是否认的。有如下几点缘由: 对象

注释配置不必定在先天上优于 XML 配置。若是 Bean 的依赖关系是固定的,(如 Service 使用了哪几个 DAO 类),这种配置信息不会在部署时发生调整,那么注释配置优于 XML 配置;反之若是这种依赖关系会在部署时发生调整,XML 配置显然又优于注释配置,由于注释是对 Java 源代码的调整,您须要从新改写源代码并从新编译才能够实施调整。 blog

若是 Bean 不是本身编写的类(如 JdbcTemplate、SessionFactoryBean 等),注释配置将没法实施,此时 XML 配置是惟一可用的方式。 事务

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

 

因此在实现应用中,咱们每每须要同时使用注释配置和 XML 配置,对于类级别且不会发生变更的配置能够优先考虑注释配置;而对于那些第三方类以及容易发生调整的配置则应优先考虑使用 XML 配置。Spring 会在具体实施 Bean 建立和 Bean 注入以前将这两种配置方式的元信息融合在一块儿。 

 

 

XML配置的优缺点: 

优势有: 

1. XML配置方式进一步下降了耦合,使得应用更加容易扩展,即便对配置文件进一步修改也不须要工程进行修改和从新编译。 

2. 在处理大的业务量的时候,用XML配置应该更加好一些。由于XML更加清晰的代表了各个对象之间的关系,各个业务类之间的调用。同时spring的相关配置也能一目了然。 

固然,有人会说,用XML配置,在大的业务量时候会使得XML文件过大,不容易查看。这一点咱们彻底能够利用业务分解书写多个XML配置文件就能够了。 

缺点有: 

配置文件读取和解析须要花费必定的时间,配置文件过多的时候难以管理,没法对配置的正确性进行校验,增长了测试难度。 

 

annotation配置的优缺点: 

优势有: 

1. 在class文件中,能够下降维护成本,annotation的配置机制很明显简单 

2. 不须要第三方的解析工具,利用java反射技术就能够完成任务 

3. 编辑期能够验证正确性,差错变得容易 

4. 提升开发效率 

 

缺点有: 

1. 若是须要对于annotation进行修改,那么要从新编译整个工程 

2. 业务类之间的关系不如XML配置那样容易把握。 

3. 若是在程序中annotation比较多,直接影响代码质量,对于代码的简洁度有必定的影响

 

转自:https://www.cnblogs.com/yq12138/p/7210274.html

相关文章
相关标签/搜索