- 2
- 0
- 约6.05千字
- 约 5页
- 2016-11-10 发布于安徽
- 举报
springXML优化配置12招.doc
spring XML优化配置12招Spring是一个强大的Java应用框架,它广泛地应用于Java应用程序中,为Plain Old Java Objects(POJO)提供企业级服务。Spring利用依赖注入机制来简化工作,同时提高可测试性。其配置文件(通常是XML格式)中指定了Spring bean、依赖性以及bean所需的服务。但是,这些XML配置文件既冗长又不实用。对于需要定义大量Spring bean的大型项目来说,它们难以阅读和管理。在本文中,我将向您展示12种用于Spring XML配置的最佳实践。其中的一些实践与其说是最佳实践,倒不如说是必要实践。注意,其他因素(如域模型的设置)也可能影响XML的配置,但是本文重点研究XML配置的可读性和可管理性。1。避免使用自动绑定(autowiring)功能Spring可以通过bean类的自省自动绑定依赖性,所以不必显式指明bean的属性和构造函数。Bean属性可以通过属性名称或类型匹配来实现自动绑定。构造函数通过类型匹配来实现自动绑定。甚至可以指定自动检测autowiring模式,它可以引导Spring选择一种适当的运行机制。先来看看下面的一个例子:???? bean id=orderService???????? class=com.lizjason.spring.OrderService???????? autowire=byName/OrderService类的属性名在容器中用于匹配bean实例。自动绑定可能会节省一些键入工作量并减少混乱。但是在现实项目中不应该使用这种方式,因为它牺牲了配置的可读性和可维护性。许多指南和介绍中大肆吹捧自动绑定是Spring的一项极好的特性,而没有提到这一特性所带来的牺牲。依我来看,这就像Spring中的对象池(object-pooling),更大程度上只是宣传的噱头。对于精简XML配置文件来说,它是一个好办法,但它实际上增加了复杂性,尤其是在运行包含大量类声明的项目时。虽然Spring允许混合使用自动绑定和显式绑定,但这会使XML配置更加晦涩难懂。2.使用命名约定该原则对于Java编码也一样适用。在项目中使用清晰的、描述性的、一致的命名约定将非常有利于开发人员理解XML配置。例如,对于bean ID,可以按照Java类字段名约定来命名它。OrderServiceDAO实例的bean ID应该命名为orderServiceDAO。对于大型项目,可以在bean ID前面加上包名作为前缀。3. 使用简洁形式简洁形式避免了冗长,因为它将属性值和引用从子元素中移入属性中。例如下面的例子:???? bean id=orderService???????? class=com.lizjason.spring.OrderService???????? property name=companyName???????????? valuelizjason/value???????? /property???????? constructor-arg???????????? ref bean=orderDAO???????? /constructor-arg???? /bean可以使用简洁形式将上述代码重写为:???? bean id=orderService???????? class=com.lizjason.spring.OrderService???????? property name=companyName???????????? value=lizjason/???????? constructor-arg ref=orderDAO/???? /bean简洁形式自1.2版本起就可以使用。注意,对于ref local=...,没有简洁形式。简洁形式不但可以节约键入工作量,而且可以使XML配置文件更清晰。当一个配置文件中定义了大量的类时,它可以显著提高可读性。4. 对于构造函数参数匹配,类型比下标好当构造函数含有一个以上同种类型的参数,或者属性值的标签已经被占用时,Spring允许使用从0开始的下标来避免混淆。例如:???? bean id=billingService???????? class=com.lizjason.spring.BillingService???????? constructor-arg index=0 value=lizjason/???????? constructor-arg index=1 value=100/???? /bean利用type属性来编写会更好一些,如下:???? bea
原创力文档

文档评论(0)