Spring中XML配置文件的十二个最佳方法(下)

开发 后端
本文介绍Spring中XML配置文件的十二个最佳方法中的后六个,包括为每个配置文件添加首部注释,Setter注入优于构造函数注入等。

7. 使用id作为bean标识符
可以指定一个id或名称来作为bean标识符。虽然使用id不能提高可读性,但是它可以利用XML分析程序来对bean引用进行验证。如果由于XML IDREF的约束而不能使用某个id,那么可以使用名称来作为bean的标识符。XML IDREF的约束是:id必须以字母(或者XML规范中定义的标点符号)开头,后面是字母、数字、连字符、下划线、冒号或句点。实际上,很少会遇到XML IDREF约束问题。

8. 在开发阶段使用依赖性检查(dependency-check)
可以在bean定义中为dependency-check属性设置一个非默认值,比如simple、objects或all,以便容器进行依赖性检查。当需要显式或通过自动绑定设置bean的全部属性(或某类属性)时,依赖性检查便显得很有用。

  1. <bean id="orderService" 
  2.         class="com.lizjason.spring.OrderService" 
  3.         dependency-check="objects"> 
  4.         <property name="companyName" 
  5.             value="lizjason"/> 
  6.         <constructor-arg ref="orderDAO"/> 
  7.     </bean>  

在这个例子中,容器确保为orderService bean设置的属性不是primitives或collections。也可以为所有的bean设置默认依赖性检查,但是我们很少这样做,因为有些bean属性根本就不必设置。

9. 为每个配置文件添加首部注释
***使用描述性的id和名称来取代XML配置文件中的内置注释。此外,添加一个配置文件首部也很有用,它可以概述文件中所定义的bean。可以选择将描述添加到description标签中。例如:

  1. <beans> 
  2.         <description> 
  3.             This file defines billing service  
  4.             related beans and it depends on  
  5.             baseServices.xml,which provides  
  6.             service bean templates...  
  7.         </description> 
  8.         ...  
  9.     </beans> 

使用description标签的一个好处是可以轻松地利用工具从标签中选获取描述内容。

10. 对于更改,团队成员要积极交流
在重构Java代码时,需要随时更新配置文件并通知团队成员。XML配置文件也是代码,它们是应用程序的至关重要的部分,但是它们难于阅读和维护。大部分情况下,需要同时阅读XML配置文件和运行中的Java代码。

11. Setter注入优于构造函数注入
Spring提供了3种类型的依赖注入:构造函数注入(constructor injection)、setter注入(setter injection)和方法注入(method injection)。我们一般只用前两种。

  1. <bean id="orderService" 
  2.         class="com.lizjason.spring.OrderService"> 
  3.         <constructor-arg ref="orderDAO"/> 
  4.     </bean> 
  5.     <bean id="billingService" 
  6.         class="com.lizjason.spring.BillingService"> 
  7.         <property name="billingDAO" 
  8.             ref="billingDAO"> 
  9.     </bean>  

在这个例子中,orderService类使用的是构造函数注入,而BillingService类使用的是setter注入。构造函数注入可以确保 bean不会在一个非法状态下被创建,但是setter注入更加灵活且更易于管理,尤其是在类包含许多属性并且其中一些可选的情况下。

12. 不要滥用依赖注入
***一点,Spring ApplicationContext可以为您创建Java对象,但并不是所有的Java对象都应通过依赖注入来创建。例如,全局对象不应该通过 ApplicationContext来创建。Spring是一个很棒的框架,但是,就可读性和易管理性而言,如果定义了大量bean,基于XML的配置就可能成为问题。过度使用依赖注入会使XML配置变得复杂且臃肿。要知道,借助于功能强大的IDE(如Eclipse和IntelliJ),Java代码比XML文件更加易读、易维护、易管理。

结束语
XML是通用的Spring配置方式。但如果定义了大量bean,基于XML的配置就会变得冗长而不实用。Spring提供了丰富的配置选项,恰当地利用其中的选项可以使XML配置更清晰,但是,有些选项(如autowiring)往往会降低配置文件的可读性和可维护性。遵循本文中所描述的***实践,将有助于您创建出清晰易读的XML配置文件。

【编辑推荐】

  1. Spring2.0新特性点评
  2. Eclipse插件之Spring IDE
  3. Spring工作原理探秘
  4. 在Eclipse RCP中使用Spring框架
  5. Spring定时器的两种实现方式
责任编辑:佚名 来源: Java天堂
相关推荐

2009-06-17 14:17:04

SpringXML配置文件

2009-11-02 10:15:53

ASP.NET MVC

2009-08-26 16:25:43

软件测试

2022-04-12 13:44:19

数据分析算法人工智能

2009-11-09 14:44:52

开源UML工具

2022-01-18 10:15:18

Vue性能优化前端

2020-10-09 11:24:38

应用安全安全开发成熟度模型BSIMM

2009-11-02 13:50:53

WordPressCMS

2017-12-02 22:26:45

数据分析信息技术IT

2019-01-26 08:40:26

2013-12-17 09:39:55

安全事件2013年安全事件

2021-08-18 10:58:56

云计算云计算环境云计算趋势

2010-06-18 15:44:24

开源UML工具

2013-07-12 10:41:36

移动应用云测试

2021-11-04 09:15:58

终端Linux命令

2011-03-21 17:09:38

数据表设计原则

2011-08-02 11:04:40

2011-10-17 13:36:54

Chrome命令

2011-06-12 08:56:01

友情链接

2009-08-08 08:49:57

Windows 7新特性
点赞
收藏

51CTO技术栈公众号