begin
1.配置propertyPlaceHodlerConfigure
<bean id="propertyConfigurer"  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:/**/**/dataSource.properties</value>
</property>
</bean>2.配置数据库相关: 
(JDBC)
<配置数据源>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${db.driver}</value>
</property>
<property name="url"> 
<value>${db.url}</value>
</property>
<property name="username">
<value>${db.username}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
</bean> <配置JdbcTemplate>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean> <使用示例>
<bean id="aaaDao" class="**.**.aaDaoImpl">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean> <配置事务>
<bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
(Hibernate) 
<配置数据源>
      <bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${ds.driver}</value>
</property>
<property name="url">
<value>${ds.url}</value>
</property>
<property name="username">
<value>${ds.userName}</value>
</property>
<property name="password">
<value>${ds.password}</value>
</property>
<property name="maxActive">
<value>${ds.maxActive}</value>
</property>
<property name="maxWait">
<value>${ds.maxWait}</value>
</property>
<property name="defaultAutoCommit">
<value>${ds.defaultAutoCommit}</value>
</property>
</bean><配置sessionFactory>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingLocations">  
<value>classpath*:/**/**/*.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
</props>
</property>
</bean><配置hibernateTemplate>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
<property name="cacheQueries">
<value>true</value>
</property>
</bean><使用示例>
<bean id="aaaDao"
class="**.**.aaaDaoImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean><配置事务>
<bean id="hibernateTransactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>3.事务的使用
<bean id="aaaService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="proxyInterfaces">
<list>
**.**.IaaaService
</list>
</property>
<!-- 被代理的对象 -->
<property name="target">
<ref bean="aaaServiceTarget"/>
</property>
<!-- 事务管理器 -->
<property name="transactionManager">
<ref bean="hibernateTransactionManager"/>
</property>
<!-- 事务的属性源 -->
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">
PROPAGATION_REQUIRED,-ServiceException,-Exception
</prop>
</props>
</property>
</bean>

<bean id="aaaServiceTarget"
class="**.**.aaaServiceImpl">
<property name="aaaDao">
<ref bean="aaaDao" />
</property>
</bean>4.使用方法:
>>创建4个XML文件:applicationActions.xml;applicationContext.xml;applicationDaos.xml;
applicationServices.xml        
>>在applicationContext.xml配置好数据库操作和事务;
>>在applicationServices.xml使用事务;
>>在applicationDaos.xml配置好jdbcTemplate或者hibernateTemplate
>>在applicationActions.xml配置好action要使用的service,
(注意:假设在Service层使用的代理,在applicationActions.xml中ref要使用代理service,如果直接使用serviceTarget则相当于没进入事务管理。)
>>在struts-config.xml中配置插件,将四个xml文件导入项目:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationActions.xml,/WEB-INF/classes/applicationContext.xml,/WEB-INF/classes/applicationDaos.xml,/WEB-INF/classes/applicationServices.xml" />
</plug-in>
>>在struts-config.xml中使用action委托:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
(这样使用了的话,在struts-config.xml中没必要写action的type.可以在applicationActions.xml中配置。)
>>在web.xml中导入struts-config.xmlEnd!