`
JavaSam
  • 浏览: 951888 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

配置文件和注解的优缺点

 
阅读更多

注释配置相对于 XML 配置具有很多的优势:

它 可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。
注 释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。
因此在很多情况下,注释配置比 XML 配置更受欢迎,注释配置有进一步流行的趋势。Spring 2.5 的一大增强就是引入了很多注释类,现在您已经可以使用注释配置完成大部分 XML 配置的功能。

注释配置和 XML 配置的适用场合
是否有了这些 IOC 注释,我们就可以完全摒除原来 XML 配置的方式呢?答案是否定的。有以下几点原因:
注 释配置不一定在先天上优于 XML 配置。如果 Bean 的依赖关系是固定的,(如 Service 使用了哪几个 DAO 类),这种配置信息不会在部署时发生调整,那么注释配置优于 XML 配置;反之如果这种依赖关系会在部署时发生调整,XML 配置显然又优于注释配置,因为注释是对 Java 源代码的调整,您需要重新改写源代码并重新编译才可以实施调整。
如果 Bean 不是自己编写的类(如 JdbcTemplate、SessionFactoryBean 等),注释配置将无法实施,此时 XML 配置是唯一可用的方式。
注释配置往往是类级别的,而 XML 配置则可以表现得更加灵活。比如相比于 @Transaction 事务注释,使用 aop/tx 命名空间的事务配置更加灵活和简单。
所 以在实现应用中,我们往往需要同时使用注释配置和 XML 配置,对于类级别且不会发生变动的配置可以优先考虑注释配置;而对于那些第三方类以及容易发生调整的配置则应优先考虑使用 XML 配置。Spring 会在具体实施 Bean 创建和 Bean 注入之前将这两种配置方式的元信息融合在一起。
小结
Spring 在 2.1 以后对注释配置提供了强力的支持,注释配置功能成为 Spring 2.5 的最大的亮点之一。合理地使用 Spring 2.5 的注释配置,可以有效减少配置的工作量,提高程序的内聚性。但是这并不意味着传统 XML 配置将走向消亡,在第三方类 Bean 的配置,以及那些诸如数据源、缓存池、持久层操作模板类、事务管理等内容的配置上,XML 配置依然拥有不可替代的地位
分享到:
评论

相关推荐

    ssh框架优缺点

    1. **复杂的配置和映射文件:**虽然Hibernate提供了强大的映射功能,但是复杂的配置文件和映射文件可能会增加开发和维护的成本。 2. **学习曲线较陡峭:**对于新手来说,掌握Hibernate的高级特性需要一定的时间和...

    xml和annotation的优缺点

    ### XML与Annotation的优缺点对比分析 #### 一、引言 ...同时,合理地规划配置文件的组织结构,如对XML配置进行模块化分组,以及加强对注解使用的规范指导,都是提升开发效率和项目质量的有效手段。

    cfg.rar_linux 配置文件_文件操作_文件读写_配置文件_配置文件 读写

    这些格式各有优缺点,选择哪种取决于应用需求和开发者的偏好。例如,INI文件简单易读,适合手动编辑;JSON和YAML结构清晰,适合数据交换;XML虽然复杂,但提供了丰富的注释和扩展能力。 在处理配置文件时,还需要...

    Spring的优缺点及工作原理

    - **配置文件**:开发者通过XML或注解的方式来声明Bean的依赖关系,Spring容器负责读取这些配置,并在运行时创建相应的对象,同时注入它们之间的依赖关系。 - **XML配置**:在早期版本中,开发者通常会在`...

    SSH框架的优缺点

    2. **配置复杂**:虽然有XML和注解两种配置方式,但大量的配置文件可能会增加项目管理的复杂性。 **三、Hibernate** Hibernate是一个优秀的对象关系映射(ORM)工具,它简化了数据库操作。它的优点包括: 1. **简化...

    STRUTS2优缺点

    - **配置文件较多:**虽然 STRUTS2 提供了 XML 和注解两种配置方式,但在实际开发中仍然需要编写大量的配置信息。 - **配置文件理解难度大:**对于初学者来说,理解这些配置文件的作用和意义可能需要花费一定的...

    mybatis配置及优缺点.zip

    MyBatis的配置主要分为两个部分:全局配置文件和映射文件。全局配置文件(mybatis-config.xml)包含了数据库连接信息、事务管理、类型别名等基础设置。映射文件(Mapper XML文件)则定义了SQL语句和Java对象之间的...

    完整版配置文件扩充操作模块示例.e.rar

    9. **文档与注释**:为了便于理解和维护,配置文件应该有清晰的注释,解释每个配置项的作用和可能的值。同时,相关的开发文档应同步更新,介绍如何正确使用和扩展配置。 10. **最佳实践**:遵循一定的最佳实践,如...

    JAVA三大框架优缺点

    1. **配置繁琐:** Spring的配置文件较为复杂,尤其是在大型项目中,需要管理大量的XML或注解配置。 2. **学习成本高:** Spring的功能非常强大,但这也意味着初学者需要投入较多的时间来掌握其核心概念和技术细节...

    Spring事务优缺点及使用详解.docx

    1. 配置事务管理器:在Spring配置文件中声明数据库访问技术对应的事务管理器实现类。 2. 注解事务:通过在业务方法上添加@Transactional注解,指定事务的隔离级别、传播行为等属性。 3. 由Spring管理事务生命周期...

    Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql

    首先,MyBatis的主要工作方式是通过Mapper接口和对应的XML配置文件来执行SQL。XML配置文件包含了SQL语句、结果映射等信息,而Mapper接口则提供了调用这些SQL的方法。当我们在代码中直接写SQL时,这通常涉及到`@...

    strut spring hibernate 优缺点

    2. **配置复杂性:** 尽管Spring提供了XML和注解两种配置方式,但在某些场景下仍然可能出现配置文件过于复杂的情况,这可能导致项目难以维护。 #### Hibernate框架 **优点:** 1. **ORM支持:** Hibernate是一个...

    Python-proton是一个将excel导出为配置文件的工具

    通常,XML、JSON和Lua都是常见的配置文件格式,各有优缺点。XML提供了丰富的结构和注释功能,但解析相对较慢;JSON则以其简洁明了的语法和高效的解析速度受到欢迎,但结构稍显单一;Lua则是一种轻量级的脚本语言,...

    加载properties配置文件的几种方法

    在Java开发中,尤其是使用SSM(Spring、Struts、MyBatis)框架时,配置文件的管理至关重要。Properties文件通常用于存储应用的配置参数,如数据库连接信息、系统设置等。本文将深入探讨在SSM框架下加载properties...

    基础加强-源代码.rar

    关于配置文件与注解开发的优缺点: 注解优点:开发效率高 成本低 注解缺点:耦合性大 并且不利于后期维护 不同的注解只能在不同的位置使用(方法上、字段上、类上) 3.自定义注解(了解) 1)怎样去编写一个...

    struts spring hibernate 优缺点分析.docx

    3. **页面导航**:通过配置文件管理页面跳转,使得系统结构清晰,有利于后期维护和团队协作。 然而,Struts也存在一些不足之处: 1. **学习曲线**:对于初学者,理解和使用Struts的Taglib可能需要一定时间,可能会...

    代理设计模式:静态代理和动态代理的理解、实现与区别(优缺点)与SpringAOP的3种配置方式案例工程代码

    1. **XML配置**:在Spring的配置文件中声明切面、通知、目标对象等,这是最传统的配置方式。 2. **注解配置**:使用`@Aspect`注解定义切面,`@Before`、`@After`、`@Around`等注解定义通知,这种方式更简洁。 3. **...

    优秀的PHP程序员至少应该了解PHP代码的优缺点

    标题和描述中提到的核心知识点是,优秀的PHP程序员需要理解PHP代码的优缺点,这涉及到代码的结构化、规范化、自适应性和安全性。以下是对这些方面更详细的解释: 1. 结构化代码:良好的PHP代码应该遵循模块化和分层...

    json基本介绍及优缺点.zip

    产品说明.zip可能包含了一个或多个具体的JSON实例,展示了如何在实际产品开发中使用JSON进行数据交换,例如API接口的响应数据、配置文件格式等。 总的来说,JSON作为一种数据交换格式,它的简单性和效率使其在现代...

    详解Spring Boot配置文件之多环境配置

    Spring Boot配置文件之多环境配置详解 Spring Boot是一款非常流行的Java框架,用于快速构建 Production-Ready 的应用程序。其中,配置文件是一個非常重要的组成部分,用于存储应用程序的各种配置信息。在实际开发...

Global site tag (gtag.js) - Google Analytics