业务层与事务控制

 

业务层应该不应该出现事务控制代码 这个问题已经在业界达成共识:业务层绝对不应该出现事务控制代码,严格的说不应该出现与业务无关的代码。

aop没有出现以前是怎样控制的呢?

似乎没有很好的方法

但是随着spring的出现aop的风靡 这个问题得到了比较优雅的解决

<o:p> </o:p>

例如

<o:p> </o:p>

有业务方法

bizMethod(){

       //business code

       dao.insert();

<o:p> </o:p>

       //business code

       dao.update();

}

<o:p> </o:p>

要对这个方法加上事务控制

aop出现之前 我们怎么解决呢?只能这样

bizMethod(){

       tx.begin();

<o:p> </o:p>

       //business code

       dao.insert();

<o:p> </o:p>

       //business code

       dao.update();

<o:p> </o:p>

       tx.comit();

}

<o:p> </o:p>

这样事务代码就混合到业务逻辑中 跟dao层产生紧耦合 不利于业务代码的复用

<o:p> </o:p>

而采用aop来控制就可以采用配置文件的方式 将事物控制代码提取到业务代码之外

提高了业务代码的复用度 使业务层与dao层产生松耦合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值