spring配置文件

1、   配置文件的简化

1)   属性的

   <property name="foo">
     
<value>fooValue</value>
  </
property>
  简化为
  <property name="foo" value="fooValue"/>

2)  引用 bean

<property name="foo">
            
<ref bean="fooBean">
         
</property>
     
简化为
       
<property name="foo" ref="fooBean"/>

3)  多属性

   property name="myFriendList">
  
<list>
     
<value>gigix</value>
        <value>wuyu</value>
  
</list>
</property>
简化为
<property name="myFriendList" value="gigix wuyu"/>

4)  Spring 2.0

      <bean id="customerDAO" class="org.springside...CustomerDAO">
           
<property name="maxCount" value="10">
    
</bean>

简化为

<customerDAO class="org.springside....CustomerDAO" maxCount="10"/>

2、 尽量使用ApplicationContext装配bean,而不是用import

Ant脚本中imports一样,Springimport 元素对于模块化bean的装配非常有用,例如:
<beans>
<import resource="billingServices.xml"/>
<import resource="shippingServices.xml"/>
<bean id="orderService"
class="com.lizjason.spring.OrderService"/>
<beans>
然而,比起在XML中用imports预装配这些bean,利用ApplicationContext来配置它们将更加灵活,也可以使XML配置更加的易于管理。你可以像下面这样传递一个bean定义数组到ApplicationContext的构造函数中:
String[] serviceResources =
{"orderServices.xml","billingServices.xml","shippingServices.xml"};
ApplicationContext orderServiceContext = new ClassPathXmlApplicationContext(serviceResources);

3、  setter注入和构造函数注入,优先使用前者

Spring
提供了三种注入方式:构造函数注入,setter注入和方法注入。一般我们使用前两种。

<bean id="orderService"
class="com.lizjason.spring.OrderService">
<constructor-arg ref="orderDAO"/>
</bean>

<bean id="billingService"
class="com.lizjason.spring.BillingService">
<property name="billingDAO"
ref="billingDAO">
</bean>

在这个例子中,orderService bean用了构造函数注入,而BillingService bean用了setter注入。构造函数注入可以确保bean正确地构建,但是setter注入更加的灵活和易于控制,特别是当class有多个属性并且它们中的一些是可选的情况是更是如此。

4、  为每个配置文件加一个描述注释

XML配置文件中最好使用有描述性的idname,而不是成堆的注释。另外,加一个文件描述头将会非常有用,这个描述可以概括文件中定义的bean。另一个选择,你可以在description元素中加入描述信息。例如:

<beans>
<description>
This file defines billing service
related beans and it depends on
baseServices.xml,which provides
service bean templates...
</description>
...
</beans>
description元素的一个好处就是工具可以很容易的把描述信息从这个元素中提取出来。

5、  在开发阶段使用依赖检查

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

<bean id="orderService"
class="com.lizjason.spring.OrderService"
dependency-check="objects">
<property name="companyName"
value="lizjason"/>
<constructor-arg ref="orderDAO"/>
</bean>
在这个例子中,容器将确保这些属性不是privitives或者保证collections是为orderService bean设置的。为所有的bean设置默认的依赖检查是可能的,但这个特性由于有些bean的属性不需要设置而很少使用。

6、 如可能,尽量复用bean定义(继承)

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

<bean id="abstractService" abstract="true"
class="com.lizjason.spring.AbstractService">
<property name="companyName"
value="lizjason"/>
</bean>

<bean id="shippingService"
parent="abstractService"
class="com.lizjason.spring.ShippingService">
<property name="shippedBy" value="lizjason"/>
</bean>
shippingService bean
继承了abstractService bean的属性companyName的值lizjason。注意,如果你为bean声名一个class或工厂方法,这个bean将会默认为abstract

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值