`
evget
  • 浏览: 141372 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类

Spring中XML的12个配置技巧

阅读更多
文章关键字:|Spring|Java|框架|XML|

  Spring利用依赖注入可以获得简单而有效的测试能力。Spring beans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进行一个使用了大量bean的大项目中它将变得难以阅读和控制。

  在这篇文章中我将给你展示12种的有关Spring XML配置文件的最佳技巧。请注意另外一些因素,例如域模型的设计,会影响到XML配置,但是这篇文章更关注于XML配置的可读性和可操控性。

  1.避免使用自动装配

  Spring可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring替你就会选择一个合适的机制。请看下面的例子:

  Spring可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring替你就会选择一个合适的机制。请看下面的例子:

  class="com.lizjason.spring.OrderService"autowire="byName"/>

  OrderService类的属性名被用来和容器中的一个bean实例进行匹配。自动装配会默默的保存一些类型信息并降低混乱。然而,由于它会牺牲掉这种配置的直观性和可维护性,你在实际的项目中将不会用到它。许多指南和陈述材料都把它吹捧为Spring的一个非常cool的特性,而没有提到它的这个缺点。依我之见,就像Spring的对象池一样,它更多了一些商业味道。它看起来好像可以使XML配置文件更精简一些,但实际上却增加其复杂性,尤其是在你的较大规模的工程中已经定义了很多bean的时候更是如此。Spring允许你混合使用自动和手动装配,但是这种矛盾会使XML配置更加的令人费解。

  2.使用命名规范

  和Java编码的理念一样,在项目中始终用清晰的,描述性的,一致的命名规范对开发人员理解XML配置非常有用。拿bean ID举例来说,你可以遵循Java类中属性的命名规范。比如说,OrderServiceDAO的bean ID应该是orderServiceDAO。对于大项目来说,在bean ID前加包名来作为前缀。

  3.使用简化格式

  简化格式有利于减少冗余,因为它把属性值和引用作为属性,而不是子元素。看下面的例子:

  class="com.lizjason.spring.OrderService">lizjason

  以上程序可以重新以简化格式书写为:

  class="com.lizjason.spring.OrderService">value="lizjason"/>

  简化格式在1.2版本时已经可用了,但请注意不存在这种简化格式不仅可以较少你的代码输入量,而且可以使XML配置更加的清晰。当你的配置文件中存在大量的bean定义时,它可以显著地提高可读性。4.尽量使用type而不是index去解决构造函数参数的匹配问题当构造函数中有多个同类型的参数时,Spring只允许你使用从0开始的index或者value标签来解决这个问题。请看下面的例子:class="com.lizjason.spring.BillingService">

  最好用type属性取代上面的做法: class="com.lizjason.spring.BillingService">value="lizjason"/>

  用index可以稍微减少冗余,但是它更容易出错且不如type属性可读性高。你应该仅在构造函数中有参数冲突时使用index。

  5.如可能,尽量复用bean定义

  Spring提供了一种类似于继承的机制来降低配置信息的重复并使XML配置更加的简单。一个子bean可以从它的父bean继承配置信息,本质上这个父bean就像它的子bean的一个模板。这是一个在大型项目中必须使用的特性。所有你要做的就是把父bean的abstract属性置为true,并在子bean中加以引用。例如:

  class="com.lizjason.spring.AbstractService">value="lizjason"/>
  parent="abstractService"class="com.lizjason.spring.ShippingService">

  shippingService bean继承了abstractService bean的属性companyName的值lizjason。注意,如果你为bean声名一个class或工厂方法,这个bean将会默认为abstract.

未完,原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9164
分享到:
评论

相关推荐

    Spring XML配置的12个技巧

    以下是对Spring XML配置的12个技巧的详细说明: 1. 避免使用自动装配:Spring提供了自动装配功能,通过匹配bean属性或构造函数参数进行依赖注入。尽管能简化配置,但可能会牺牲可读性和可维护性,因此不推荐在大型...

    Spring中XML配置的12个技巧

    ### Spring中XML配置的12个技巧 #### 1. 避免使用自动装配 在Spring框架中,自动装配(auto-wiring)是一种强大的功能,它允许开发者通过元数据(如bean类的自省)自动装配bean之间的依赖关系,从而避免在XML配置...

    Spring ApplicationContext.xml配置的12个技巧演示教学.pdf

    "Spring ApplicationContext.xml配置的12个技巧演示教学" Spring ApplicationContext.xml配置是 Spring 框架中非常重要的一部分,它提供了企业级服务,并且可以通过依赖注入来获得简单而有效的测试能力。然而,在...

    Spring 配XML的十二种技巧.doc

    在探讨Spring配XML的十二种技巧时,我们深入解析了几个关键点,这些技巧旨在提升Spring框架中XML配置文件的可读性、可维护性和效率。以下是对文章中提到的几点技巧的详细解读: ### 1. 避免使用自动装配 尽管...

    spring 自定义xml标签

    3. **注册自定义标签**:在Spring的XML配置文件中,你需要声明自定义命名空间,例如`<beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo">`。...

    Spring 加载多个配置文件

    本文将深入探讨如何在 Spring 中有效地加载多个配置文件,以及这一策略背后的理论依据。 #### 二、为什么拆分配置文件 在一个复杂的应用程序中,可能包含了从表示层的Action到持久层的DataSource在内的各种组件。...

    Spring 配XML的十二种技巧

    在Spring XML配置文件中,我们通过`<bean>`标签定义一个bean。例如: ```xml <!-- 初始化参数 --> 张三"/> ``` 这里,`id`是bean的唯一标识符,`class`指定bean的实现类,`property`标签用于设置bean属性的值。 ...

    spring xml class属性提示

    在Spring框架中,XML配置文件是定义和管理bean的主要方式之一。`class`属性在`<bean>`标签中起着至关重要的作用,因为它指定要实例化的Java类全路径。为了解决在编写XML配置时手动输入类全路径的不便,开发工具通常...

    Spring+mvc+mybatis Mapper xml自动加载

    然而,通过特定的配置技巧,我们可以实现XML文件的热加载,这样每次修改完XML文件后,系统会自动感知变化并重新加载,避免了重启服务器的繁琐过程。 首先,我们需要确保Spring和MyBatis的配置文件正确设置了资源...

    SpringApplicationContext.xml配置的12个技巧.pdf

    Spring的ApplicationContext.xml配置是Spring框架的核心部分,用于定义和管理应用程序中的bean及其依赖关系。本文将探讨12个提升配置效率和可维护性的技巧。 1. **避免过度使用自动装配**(Autowiring):虽然...

    手写SpringIoc的XML实现方式

    在本主题中,我们将深入探讨如何手写一个基于XML的Spring IOC实现,模仿Spring框架中的`ClassPathXmlApplicationContext`。这个实现旨在帮助理解Spring底层的工作原理,并加深对IoC容器的理解。 首先,我们需要创建...

    Spring 2.x配置详解

    `<beans>` 元素是 Spring XML 配置中最基础的部分。在此元素内,你可以定义 bean、bean 的依赖关系以及配置其他上下文。例如,一个简单的 bean 定义可能如下所示: ```xml ``` 这里定义了一个名为 `...

    day38 18-Spring的XML和注解的结合使用

    在Spring框架中,XML配置和注解是两种主要的组件装配方式。本篇文章将探讨如何在实际开发中将这两种方式结合起来使用,以充分利用它们各自的优点,实现更灵活、高效的Java应用开发。 首先,Spring的XML配置是早期...

    MyBatis-Spring配置教程,非常适合初学者

    别忘了在Spring的配置文件(如applicationContext.xml)中声明这些bean。 接下来,编写Mapper接口和对应的XML映射文件。Mapper接口定义了数据库操作的方法,XML映射文件则定义了SQL语句。在Spring配置文件中,通过`...

    spring配置全书(中文)

    ### Spring配置全书知识点概述 ...综上所述,《Spring配置全书》不仅涵盖了Spring框架的基础配置知识,还深入探讨了高级配置技巧和最佳实践,是Java开发人员学习和使用Spring框架不可或缺的参考资料。

    spring框架配置bean的高级属性

    本文将详细解读标题“spring框架配置bean的高级属性”以及描述中的内容,并结合具体的示例XML配置文件来探讨Bean配置中的高级技巧。 #### 核心概念与应用场景 在描述中提到的`hibernate tools`是一种用于简化...

    spring配置全书.doc

    通过学习《Spring配置全书》,开发者能够全面掌握Spring框架的配置技巧,提升Java企业级应用开发的效率和质量。无论是初学者还是资深开发者,都能从中受益,更好地利用Spring框架进行复杂应用的构建。

Global site tag (gtag.js) - Google Analytics