1.xml配置方式(jdbc事物管理器+事物通知+事物切面)
<?xml version= "1.0" encoding ="UTF-8"?>
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:context
=
"http://www.springframework.org/schema/context"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
xsi:schemaLocation
=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
>
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method
=
"close"
>
<
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
>
<!-- jdbc事务管理器 -->
<
bean
id
=
"transactionManager"
class
=
"org.springframework.jdbc.datasource.DataSourceTransactionManager"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
></
property
>
</
bean
>
<!-- 配置事务通知 -->
<
tx:advice
id
=
"txAdvice"
transaction-manager
=
"transactionManager"
>
<
tx:attributes
>
<
tx:method
name
=
"insert*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"update*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"edit*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"save*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"add*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"new*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"set*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"remove*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"delete*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"change*"
propagation
=
"REQUIRED"
/>
<
tx:method
name
=
"get*"
propagation
=
"REQUIRED"
read-only
=
"true"
/>
<
tx:method
name
=
"find*"
propagation
=
"REQUIRED"
read-only
=
"true"
/>
<
tx:method
name
=
"load*"
propagation
=
"REQUIRED"
read-only
=
"true"
/>
<
tx:method
name
=
"*"
propagation
=
"REQUIRED"
read-only
=
"true"
/>
</
tx:attributes
>
</
tx:advice
>
<!-- 配置事务切面 -->
<
aop:config
>
<!-- 配置切点 -->
<
aop:pointcut
id
=
"serviceMethod"
expression
=
"execution(* com.lidongyang.service.*.*(..))"
/>
<!-- 配置事务通知 -->
<
aop:advisor
advice-ref
=
"txAdvice"
pointcut-ref
=
"serviceMethod"
/>
</
aop:config
>
<
context:property-placeholder
location
=
"jdbc.properties"
/>
<
bean
id
=
"namedParameterJdbcTemplate"
class
=
"org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"
>
<
constructor-arg
ref
=
"dataSource"
></
constructor-arg
>
</
bean
>
<!-- 上面的全可以直接调用不用修改,如果要改数据库配置就改jdbc.properties -->
<
bean
id
=
"bankDao"
class
=
"com.lidongyang.dao.impl.BankDaoImpl"
>
<
property
name
=
"namedParameterJdbcTemplate"
ref
=
"namedParameterJdbcTemplate"
></
property
>
</
bean
>
<
bean
id
=
"bankService"
class
=
"com.lidongyang.service.impl.BankServiceImpl"
>
<
property
name
=
"bankDao"
ref
=
"bankDao"
></
property
>
</
bean
>
</
beans
>
2.注解方式配置(
@Transactional +beans.xml(jdbc事物管理器+
<
tx:annotation-driven
transaction-manager
=
"transactionManager"
/>
)
)
例子:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:context
=
"http://www.springframework.org/schema/context"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
xsi:schemaLocation
=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
>
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method
=
"close"
>
<
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
>
<!-- jdbc事务管理器 -->
<
bean
id
=
"transactionManager"
class
=
"org.springframework.jdbc.datasource.DataSourceTransactionManager"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
></
property
>
</
bean
>
<
tx:annotation-driven
transaction-manager
=
"transactionManager"
/>
<
context:property-placeholder
location
=
"jdbc.properties"
/>
<
bean
id
=
"namedParameterJdbcTemplate"
class
=
"org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"
>
<
constructor-arg
ref
=
"dataSource"
></
constructor-arg
>
</
bean
>
<!-- 上面的全可以直接调用不用修改,如果要改数据库配置就改jdbc.properties -->
<
bean
id
=
"bankDao"
class
=
"com.lidongyang.dao.impl.BankDaoImpl"
>
<
property
name
=
"namedParameterJdbcTemplate"
ref
=
"namedParameterJdbcTemplate"
></
property
>
</
bean
>
<
bean
id
=
"bankService"
class
=
"com.lidongyang.service.impl.BankServiceImpl"
>
<
property
name
=
"bankDao"
ref
=
"bankDao"
></
property
>
</
bean
>
</
beans
>