首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么写好spring的配置文件

2012-10-28 
如何写好spring的配置文件1. 你不该滥用自动装配自动装配很酷,会默默的保存一些类型信息并降低混乱。然而,

如何写好spring的配置文件
1. 你不该滥用自动装配
自动装配很酷,会默默的保存一些类型信息并降低混乱。
然而,由于它会牺牲掉这种配置的直观性和可维护性,你在实际的项目中将不会用到它。

2. 使用命名规范

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

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

<bean id="orderService" name="code"><bean id="orderService" value="oracle"/><constructor-arg ref="orderDao"/></bean>

简化格式在1.2版本时已经可用了,这种简化格式不仅可以较少你的代码输入量,而且可以使XML配置更加的清晰。
当你的配置文件中存在大量的bean定义时,它可以显著地提高可读性。

4. 尽量使用type而不是index去解决构造函数参数的匹配问题
当构造函数中有多个同类型的参数时,Spring只允许你使用从0开始的index或者value标签来解决这个问题。请看下面的例子:

<bean id="billingService" value="oracle"/><constructor-arg index="1" value="100"/></bean>

最好用type属性取代上面的做法:

<bean id="billingService" value="oracle"/><constructor-arg type="int" value="100"/></bean>

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

5. 如可能,尽量复用bean定义
Spring 提供了一种类似于继承的机制来降低配置信息的重复并使XML配置更加的简单。一个子bean可以从它的父bean继承配置信息,本质上这个父bean就像它的子bean的一个模板。这是一个在大型项目中必须使用的特性。所有你要做的就是把父bean的abstract属性置为true,并在子bean中加以引用。例如:
<bean id="dao" abstract="true"><property name="sqlMapClientTemplate" ref="sqlMapClientTemplate" /></bean><bean id="departmentDao" parent="dao" /><bean id="employeeDao" parent="dao" />


6. 尽量使用ApplicationContext装配bean,而不是用import
下面这样不是最好选择
<beans><import resource="applicationContext-dao.xml"/><import resource="applicationContext-service.xml"/><beans>

ClassPathXmlApplicationContext的构造方法有一种重载是接受String[]的。用它。

7. 用id来标识bean
name太灵活了,太灵活又可能是个问题。在实际应用中很少会遇到XML IDREF约束问题,用id足够了。

8. 在开发阶段使用依赖检查
你可以为bean的dependency-check属性设置一个值来取代默认的none,比如说simple,objects或者all。
这样的话容器将替你做依赖有效性的检查。当一个bean的所有属性(或者某些属性目录)都被明确设置,或利用自动装配时将会非常有用。

9. 为每个配置文件加一个描述注释
配置文件里加点注视,xml文件的注释可以,description标签也可以。用标签的好处是,你可以写个什么工具把它抽出来。

10.和你的同事们沟通变更
当你修改java源码后,要确保更改了配置文件中的相应部分并把这个情况告知你的同事。
XML配置文件也是代码,它们是程序的重要组成部分,但它们很难阅读和维护。
大多数时间里,你需要同时看XML配置文件和java代码才能知道是怎么回事。

11.setter注入和构造函数注入,优先使用前者
Spring提供了三种注入方式:构造函数注入,setter注入和标注破坏封装注入。一般我们使用前两种。

12. 不要滥用注入
记住一个道理:“物极必反”。

热点排行