修理俺的系统架构(三)

继续上一次的修理
其实除了对事务的配置管理的简化,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属性一次性定义即可。

你可能感兴趣的:(spring,jdbc,配置管理)