快速业务通道

总结Spring中XML配置的十二个最佳实践 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
在父类bean中设置abstract=true,然后在子bean注明它自己的父类bean。例如:

class="com.lizjason.spring.AbstractService"

parent="abstractService"

class="com.lizjason.spring.ShippingService"

ShippingService类从abstractService类那里继承companyName属性的值。如果你没有为一个bean指明类或factory方法,那么这个bean便是抽象的。

6.尽量使用ApplicationContext来装配定义的bean

像在Ant脚本中的引用一样,Spring的引用对于装配模块化的bean来说是很有用的。例如:

class="com.lizjason.spring.OrderService"

相对于使用import在XML配置中来预装配,通过ApplicationContext来配置这些beans,显得更加灵活。利用ApplicationContext也使得XML配置易于管理。你可以像下面的例子那样在ApplictionContext构造器里布置bean:

String[]serviceResources={"orderServices.xml","billingServices.xml","shippingServices.xml"};

ApplicationContextorderServiceContext=new ClassPathXmlApplicationContext(serviceResources);

7.利用id作为bean的标识符

你可以指定一个id或名称来作为bean的标识符。虽然使用id不会提高易读性,但是它可以让XMLparser对bean的引用有效方面进行更好的验证。如果由于XMLIDREF的限制而不能使用某个id,你可以利用names来作为bean的标识符。XMLIDREF的限制是id必须以字母开头(或者在XML规范中定义的标点符号),后面接着字母,数字,连字号,下划线,冒号等。实际上,遇到XMLIDREF限制的问题是很少见的。

8.在开发阶段使用依赖检验

你可以在bean中给依赖检验的属性设置值,而不采用原先默认的空值,属性设置例如simple,object或all,以便容器进行依赖检验。当bean的全部的属性(或某类属性)需要被明确设置或自动绑定时,依赖检验便显得很有用。

class="com.lizjason.spring.OrderService" dependency-check="objects"

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

9.为每个配置文件加上一个headercomment

最好使用descriptiveid和名称来代替在XML配置文件中的注释。此外,加上一个配置文件header也很有用处,它可以概述文件中所定义的bean。你可以选择将描述内容加入description标签中。例如:

Thisfiledefinesbillingservice

relatedbeansanditdependson

baseServices.xml,whichprovides

servicebeantemplates......

使用description标签的一个好处是可以容易地利用工具从标签中选取出description(的内容)。

10.对于任何变化,要与队友积极交流

当你重构Java代码时,你需要随时更新配置文件并且通知队友。XML配置文件也是代码,它们是应用程序的至关重要的部分,但是它们难于阅读和维护。大部分时间你既要阅读XML配置文件又要阅读运行中的Java代码。

11.Setterinjection优于constructorinjection

Spring提供3种类型的依赖注入:constructorinjection,setterinjection,和methodinjection。我们一般只用前两种类型。

class="com.lizjason.spring.OrderService"

class="com.lizjason.spring.BillingService"

这个例子中,orderService类使用的是constructorinjection,而BillingService类使用的是setterinjection。constructorinjection可以确保bean不会在一个非法状态下被创建,但是setterinjection更加灵活并且更易管理,尤其当类存在很多属性并且其中一些是可选的情况下。

12.不要滥用依赖注入

作为最后一点,SpringApplication

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号