面向切面编程-AOP

什么是Aop?
答:面向切面编程

AOP的目的:
AOP能将与业务无关,但是又被所有业务模块共用的代码抽离出来,使用动态代理技术在容器的运行期间,动态的织入其中,减少了重复代码,降低了耦合度,提升系统的可维护性.

AOP中的重要概念:
切入点:在哪些类,哪些方法上切入
通知(增强):在方法执行的什么时机(在方法之前,之后,异常等),做什么(增强);
切面:切入点+通知(在什么地方,时间做什么);如:在烧饼上,在顾客来的时候,将肉加入到烧饼中;
织入:把切面加入到真实对象然后创建代理类的全过程(由Spring容器动态完成,不需要我们去管)

事务应该控制在哪一层?
我们使用事务主要是因为:事务可以让多条sql要么一起成功,要么一起失败,例如张三给李四转钱,会发生两条update语句如果将事务写在dao层的话,每一个update语句分别是一个事务,这样的话是两个事务,并且中间没有任何关联无法做到一起成功一起失败.如果将事务控制在service层,由service层去调用两次update语句,这样只产生一个事务,大家要么一起成功,要么一起失败.

execution(* com.zzx.service..*(..))
代表service包下所有类以及其子包下所有类的所有方法

execution(* com.zzx.service.impl.UserServiceImpl.*(..))
代表userserviceimpl类中的所有方法

execution(* com.zzx.service..add*(..))	
代表service包下所有类以及其子包下所有类的add开头的方法

execution(* com.zzx.service.*.*(..))
代表service包下所有类以及其子包下所有类的所有方法


使用注解来简化AOP,@After(EDP)会优先于@AfterReturning(EDP)执行




数据库连接池:
每次连接数据库都需要打开一个全新的连接,而每一个连接都需要消耗很多电脑的性能,如果每个连接只使用一次
就关闭掉的话,非常的消耗系统性能,这个时候我们可以使用数据库连接池,使用连接的时候直接从连接池获取,当
使用完毕后连接会自动返回到连接池中,这会自动返回到连接池中,这样可以达到一个连接反复利用的效果,非常节
省系统性能。


Spring的事务管理:
TransactionDefinition:用于设置事务的隔离级别,超时时间,是否为只读事务等。
PlatformTransactionManager:事务管理器,可以通过其获取事务,以及事务的属性配置信息,开启,提交...等。
Transactionstatus:封装了事务的各种状态,是否开启,是否提交,在某些异常下是否回滚。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郑要做干饭人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值