继续上一次的修理
其实除了对事务的配置管理的简化,spring还对很多方面做了简化,具体大家可参看spring2.0的文档,这里只是给出偶们的架构里使用的简化配置:
(1).jndi的简化配置:
简化前:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:comp/env/jdbc/coal</value></property>
</bean>
简化后:
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/coal"/>
(2)属性文件的简化配置(.properties):
简化前:
<bean id="jdbcConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:jdbc.properties"/>
</bean>
简化后:
<util:properties id="jdbcConfiguration" location="classpath:jdbc.properties"/>
如此看来此属性文件配置简化不少,但是看下面这种情况,你会发现,这种配置就会有一点不方便,比如我们在配置dataSource的时候,除了通过jndi配置以外,还可以通过jdbc来配置,如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
我们使用${}的方式引用配置文件里的属性,当然了,我们还必须象下面这样定义:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:human.properties</value>
</list>
</property>
</bean>
但是如果我们采用了util:properties的方式定义了.properties,那么我们怎么定义这个propertyConfigurer呢?看下面配置代码:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="propertiesArray">
<list>
<ref local="jdbcConfiguration"/>
<ref local="humanConfiguration"/>
</list>
</property>
</bean>
这样看来,根本就没有简化啊,本来一段propertyConfigurer的配置就可以解决问题,而如果要使用简化的properties的定义格式,反而麻烦了。所以,这里偶还是建议直接使用PropertyPlaceholderConfigurer的locations属性一次性定义即可。