1:
spring 的声明式事务:
(1):配置数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.git.mm.mysql.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="1"/>
<!-- 连接池的最大值 -->
<property name="maxActive" value="500"/>
<!-- 最大空闲值.当经过一个高峰期时间后,连接池可以慢慢将已经用不到的连接释放一部分,一致减少到maxIdle为止 -->
<property name="maxIdle" value="2"/>
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请一些连接,以免洪峰到来时来不及申请 -->
<property name="minIdle" value="1"/>
</bean>
(2):配置事务:
配置事务管理器:
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
(3):
在Spring配置文件加入事务命名空间
xmlns:tx="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
(4):采用注解方式配置事务所需的注解处理器
<tx:annotation-driven transaction-manager="txManager"/>
(5):为业务bean注入数据源
(6)
@Transactional 被声明的类的每个方法将会在同一个事务中执行.
在需要事务执行环境的业务逻辑层需要使用 @Transactional 注解
2:
使用属性文件保存数据库连接信息
需要在Spring配置文件中配置的元素为:
<context:property-placeholder location="classpath:jdbc.properties"/>
加入classpath 的目的为高速Spring容器文件在类路径下
然后将在Spring配置文件中的元素以${名称}代替属性文件的相应的键即可