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

spring 注解机制和XML配置机制之间的比较

阅读更多
spring的annotation注入机制与XML注入机制本质上是相同的。annnotation简洁一些,遵循一些Coc.



有些人喜欢annotation, 这样bean的声明,注册,注入都在“刚好”的地方出现,很自然。

也有些人喜欢XML注入机制,认为这种方法集中声明在一起,能一下看到关系网,清晰明了。、
从这一点看,这两种选择有点个人口味的意思。

刚才自己敲代码分别实现了一下annotation和XML配置方式:

XML配置的优缺点:

优点有:
1. XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。
2. 在处理大的业务量的时候,用XML配置应该更加好一些。因为XML更加清晰的表明了各个对象之间的关系,各个业务类之间的调用。同时spring的相关配置也能一目了然。
当然,有人会说,用XML配置,在大的业务量时候会使得XML文件过大,不容易查看。这一点我们完全可以利用业务分解书写多个XML配置文件就可以了。

缺点有:
配置文件读取和解析需要花费一定的时间,配置文件过多的时候难以管理,无法对配置的正确性进行校验,增加了测试难度。



annotation配置的优缺点:

优点有:
1. 在class文件中,可以降低维护成本,annotation的配置机制很明显简单
2. 不需要第三方的解析工具,利用java反射技术就可以完成任务
3. 编辑期可以验证正确性,差错变得容易
4. 提高开发效率

缺点有:
1. 如果需要对于annotation进行修改,那么要重新编译整个工程
2. 业务类之间的关系不如XML配置那样容易把握。
3. 如果在程序中annotation比较多,直接影响代码质量,对于代码的简洁度有一定的影响。

注(文章中并非自己的所有心得,有的是在别人文章中总结的一些)
分享到:
评论

相关推荐

    Spring全注解project示例 (无web.xml配置)

    然后,你可以逐步学习Spring注解的使用,如`@Controller`、`@Service`、`@Repository`等。同时,掌握Spring Boot的自动配置原理也很重要。最后,通过实际操作,创建一个类似的项目,实践是最好的老师。 8. **博文...

    Spring框架xml注解配置方式实例

    "springtest3"通常代表一个或多个Java源代码文件,这些文件包含使用Spring注解的类。例如,可能会有一个`@Component`注解的类表示一个Spring Bean,或者一个`@Service`、`@Repository`或`@Controller`注解的类,...

    spring aop注解方式、xml方式示例

    下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### 注解方式 #### 1. 定义切面(Aspect) 在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect ...

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

    Spring框架的注解配置与XML配置是两种不同的配置方式,它们各自有其优势和适用场景。随着Spring框架的发展,注解配置逐渐成为主流,尤其是在Spring 2.5版本之后,其功能得到了极大的增强。 注解配置的优势在于它...

    spring注解&XML配置AOP

    以上就是Spring注解和XML配置AOP的基本概念。通过这两种方式,我们可以灵活地在Spring应用中实现面向切面的编程,将横切关注点与业务逻辑分离,提升代码的模块化程度。在实际项目中,通常会结合使用注解和XML配置,...

    SSH三大框架整合mini案例 struts 2(xml配置)+hibernate(注解)+spring(xml配置)

    在这个mini案例中,我们将深入理解SSH框架如何协同工作,以实现一个基于XML配置的Struts 2、注解驱动的Hibernate以及XML配置的Spring的整合。 **Struts 2框架** 是一个MVC(Model-View-Controller)架构,主要负责...

    SpringBoot整合Mybatis--注解版和xml配置

    在本文中,我们将深入探讨如何将MyBatis与SpringBoot框架进行整合,同时介绍两种不同的配置方式:注解版和XML配置。这两种方法都允许开发者高效地管理数据库操作,但各自有不同的特性和适用场景。 首先,SpringBoot...

    spring2.5.6注解以及xml简单ioc入门示例

    这个入门示例项目旨在帮助初学者了解和掌握Spring 2.5.6版本中的注解使用和基于XML的IoC配置。 首先,让我们来探讨一下Spring的IoC概念。IoC是一种设计模式,它将对象的创建和管理权交给了容器,而不是由对象自身...

    SSH三大框架整合 struts2(使用xml配置)+hibernate(使用xml配置)+spring(使用xml配置)

    通过@Autowired注解或XML配置,Spring可以自动装配bean,实现依赖注入。同时,Spring还提供了AOP(面向切面编程)支持,用于添加如日志、事务管理等横切关注点。 在整合SSH的过程中,Spring可以作为粘合剂,将...

    spring 定时器 注解+xml 方式模板

    本文将深入探讨如何使用`@Scheduled`注解和XML配置来创建和管理定时任务。 首先,我们要引入Spring Schedule的依赖。在Maven的`pom.xml`文件中添加以下依赖: ```xml <groupId>org.springframework.boot ...

    spring事务,xml方式和注解方式

    本节将详细介绍Spring如何通过XML配置和注解方式来实现事务管理。 首先,我们来看Spring事务的XML配置方式。在Spring中,事务管理通常通过`<tx:annotation-driven>`和`<bean>`标签来实现。`<tx:annotation-driven>`...

    spring基于task标签和通过xml配置实现任务的区别

    - Spring与Quartz的整合可以通过XML配置或Java配置实现,可以更精细地控制作业(Job)和触发器(Trigger),并且支持集群和持久化。 - 如果需要实现分布式调度、高可用性和更复杂的调度逻辑,Quartz可能是更好的...

    spring无web.xml零配置

    总结来说,"spring无web.xml零配置"意味着使用Java配置和Spring Boot的自动配置机制,替代了传统的XML配置方式,使得Spring应用的配置更加简洁、直观,同时也增强了可测试性和可维护性。通过这种方式,开发者可以更...

    spring注解Quartz定时执行功能

    下面我们将深入探讨如何利用Spring注解实现Quartz定时执行功能。 首先,我们需要引入Quartz和Spring的相关依赖。在Maven的pom.xml文件中添加以下依赖: ```xml <groupId>org.quartz-scheduler <artifactId>...

    spring-mvc 注解方式xml配置

    在Spring MVC框架中,注解方式的配置是现代开发中常用的方法,它使得代码更加简洁,减少了XML配置的复杂性。下面将详细讲解如何通过注解实现Spring MVC的Controller控制器,以及如何设置访问路径。 首先,`Model1....

    31. Spring Boot导入XML配置【从零开始学Spring Boot】

    在可能的情况下,优先考虑使用Java配置和Spring Boot的自动配置机制。 总结,Spring Boot虽然以Java配置为主,但仍然支持XML配置。我们可以通过`@ImportResource`注解启用XML配置,将XML文件放在`resources`目录下...

    spring注解完整版[定义].pdf

    1. 自动装配:Spring通过反射机制分析bean的类型和属性,自动寻找合适的依赖进行注入,降低了手动配置的工作量。 2. 更强的类型安全:由于注入是基于类型的,因此在编译时就可以检测出依赖注入的错误,提高了代码的...

    Spring中Aop的使用包括xml和注解

    这里我们将深入探讨两种在Spring中实现AOP的方式:XML配置和注解配置。 首先,让我们来看看**XML配置AOP**。在Spring的早期版本中,XML配置是主要的配置方式。在`spring-aop-xml`中,你可能会看到以下关键元素: 1...

    dwr+spring 注解方式

    1. **Spring注解配置**: - `@Configuration`:标记一个类为Spring配置类,可替代传统的XML配置。 - `@ComponentScan`:用于扫描指定包下的所有@Component及其子注解(如@Service、@Repository、@Controller)的类...

Global site tag (gtag.js) - Google Analytics