Spring 事物--注解方式

事务管理注解配置

首先把之前的两个bean去掉,关于service层和业务层的两个bean:

业务层:BankControlIMPL 

service层:Exchange

我们采用的是注解的方式,所以要引入注解解析器:

<!-- DI注解解析器 --> 对象级别

<context:annotation-config/>

<!-- IOC注解 --> class级别

<context:component-scan base-package="Spring_Data"/>

然后在业务层的class上面@Component,在service层上面@Service。

最后对应的在service层和业务层注入对应需要的对象,使用@Autowired,把两个类交给Spring帮我们来管理,到此在xml中取消了两个bean的配置,

这里需要注意的是datasource的bean不能被注解代替,原因很简单,我们不能到datasource的类里面去贴一个注解。

 

接下来要取消xml中事务的配置:

使用一个新的注解的配置  有三个方面的配置 1.注解本身,2.被贴注解的程序 3.赋予注解能力的第三方程序

怎么加事务控制呢?

有一个注解@Transactional--事务管理器的注解

 这个可以贴在service接口的上面,也可以贴在service实现类上面,我们建议贴在service实现类上面

首先明确注解的名字@Transactional                注解本身

然后把注解@Transactional贴在service实现类上面    被贴的程序

然后在xml配置@Transactional注解解析驱动          赋予注解能力的第三方程序

<tx:annotation-driven/>

  最后在对<tx:annotation-driven/>进行配置:

事务的驱动必须有一个事务管理器作为前提:

1.首先配置一个事务的管理器

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="DataSource"/>

</bean>

2.然后在配置事务驱动:与事务管理器进行关联

<tx:annotation-driven transaction-manager="transactionManager"/>

这里需要注意的是:

配置事务的驱动的方式有两种:

1.<tx:annotation-driven/>,

如果没有配置这个transaction-manager="transactionManager"属性,Spring会直接以transactionManager属性的值去找事务管理器,

所以在创建事务管理器的时候,事务管理器的ID值一定是transactionManager,否则会报错。

2.<tx:annotation-driven transaction-manager="transactionManager"/>

    如果自定义的事务管理器的ID值,那么配置事务驱动必须以第二种的方式进行配置,transaction-manager的值一定要与事务管理器的ID值相同,

    否则会报错。

 

 

 

 

 

 

 

 

 

 

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值