修理俺的系统架构(四)

继续我们的简化配置,看到上面的几个简化,也许你会说,就这几个简化啊,而且在整个系统中都是一次性的配置,如果是这样,你就错了,真正的简化在下面:

spring2.0之前我们配置一个业务层(service)和数据层(dao)的bean,一般会这样:
<bean id="logService" parent="baseTransactionProxy">  
	<property name="target">
		<bean class="com.fudannet.collierysecurity.service.serviceimpl.sucurity.LogServiceImpl">
			<property name="logDAO"><ref local="logDAOTarget"/></property>
		</bean>
	</property>
</bean>
<bean id="logDAOTarget" class="com.fudannet.collierysecurity.module.dao.daoimpl.security.LogDAOImpl">
	<property name="sessionFactory">
		<ref local="sessionFactory"/>
	</property>
</bean>


也许有人会说,使用类型匹配或者名字匹配啊,ok,可以,看下面:

<bean id="logDAOTarget" class="com.fudannet.collierysecurity.module.dao.daoimpl.security.LogDAOImpl" autowire="byType"/>


但是这样可以了吧,no,看看简化后的效果:
<bean id="logService" class="com.fudannet.collierysecurity.service.serviceimpl.sucurity.LogServiceImpl"/>
<bean id="logDAO" class="com.fudannet.collierysecurity.module.dao.daoimpl.security.LogDAOImpl"/>


说明:由于我们使用spectj的方式对事务进行aop的配置,所以,配置bean的时候无需指定parent="baseTransactionProxy",当然了我们也需要在<beans>的配置中指定 default-autowire="byName"即<beans default-autowire="byName">,这样,就不用在每个dao类的配置中指定autowire方式了。试想,如果我有成千上万个bean的配置,那么配置的代码量是不是会减少很多呢?

你可能感兴趣的:(DAO,AOP,bean)