原始bean.xml配置文件内容如下:
<!--
0.从外部加载数据源
1.创建连接池 DriverManagerDataSource 设置4个属性
2.创建JdbcTemplate, 注入dataSource
-->
<!--
0.从外部加载数据源
-->
<context:property-placeholder location="classpath:db.properties"/>
<!--1.创建连接池 DriverManagerDataSource 设置4个属性-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--2.创建JdbcTemplate, 注入dataSource-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--包扫描-->
<context:component-scan base-package="com.it.xml"/>
xml方式改造后,bean.xml配置文件内容如下:
<!--
1.引入db.properties
2.创建DriverManagerDataSource 设置4个属性
3.创建JdbcTemplate 注入dataSource
-->
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--包扫描-->
<context:component-scan base-package="com.it.xml"/>
<!--1.要在bean.xml中创建spring的平台事务管理器 (DataSourceTransactionManager ) 注入dataSource-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--2.我们需要创建一个 tx:advice 增强-->
<!--里面定义了筛选那些方法进行事务控制, 设置事务的隔离级别规则, 设置事务传播行为的规则 , 设置事务超时时间 设置事务是否只读..-->
<tx:advice id="adviceId" transaction-manager="transactionManager">
<tx:attributes>
<!--
该增强中的规则:
name代表筛选那些方法收到事务的增强
isolation : 隔离级别 REPEATABLE_READ 可重复读
propagation: 传播行为
read-only: 是否为只读事务
timeout: 事务是否超时
-->
<tx:method name="transfer" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" timeout="-1" />
</tx:attributes>
</tx:advice>
<!--3.配置aop-->
<aop:config>
<!--3.1 配置切点-->
<aop:pointcut id="pointcut01" expression="execution(* *..transfer(..))"/>
<!--3.2 配置切点和增强的组合-->
<aop:advisor advice-ref="adviceId" pointcut-ref="pointcut01"/>
</aop:config>
</beans>
改造前后bean.xml文件中添加了哪些事情呢?
1.配置平台事务管理器(注入dataSource)
2.添加一个tx:Advice 设置事务的增强
3.配置aop (配置切点, 切点和增强的组合)
来源:CSDN
作者:CS+DN+003
链接:https://blog.csdn.net/u011110301/article/details/103721766