AOP概念入门

编写入门案件

  1. 添加依赖坐标
  2. cn.tx.demo1
  3. 在这个里面写Account实体类
  4. 写接口

有一个工具类TXuti,它绑定一个线程,把connection向下传递


  1. 开启事务
  2. 中间的代码为业务逻辑
  3. 提交事务
  4. 把上面3个放入try catch 中捕获异常 finally 关闭资源

  1. 获取到连接getconnection
  2. 编写sql语句 String
  3. 预编译sql语句
  4. 设置值
  5. 执行操作excuteupdate
  6. 关闭资源

saveAll进行加强 继承 装饰者模式 动态代理 这里用jdk的动态代理进行增强 spring的aop,通过配置的方式

直接从容器中获取就是一个代理对象,就可以加一些额外操作 使用jdk的动态代理生成代理对象

AOP概述

面向切面编程

AOP是OOP的延续,是软件开发的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生物

利用AOP可以对业务逻辑的各个部分进行分离,从而使得业务逻辑的各个组成部分之间的耦合度降低

AOP的作用

解决OOP遇到的一些问题

可以在不修改源代码的前提下,对程序进行增强

AOP的优势

从工具类转变为只写业务逻辑代码

AOP底层实现原理

底层实现的就是动态代理技术:jdk的动态代理和cglib代理技术,前面必须有接口,后者不需要接口,直接继承类

AOP相关的术语

joinpoint连接点:方法,因为spring只支持方法类型的连接点

pointcut 切入点:我们要对哪些连接点进行拦截的定义,表达式决定是否需要增强

advice 通知/增强 拦截连接点之后要做的事情,编写一些具体的代码,编写事务管理相关的代码,自己写代码

target目标对象 代理的目标对象

weaving 织入 整个过程spring框架帮助我们做的

proxy 代理 结果代理类

aspect 切面 切入点和通知的结合,以后有我们自己编写代码和配置,想象成一个线

简单案例

  1. 导入jar包坐标
  2. 加入AOP的约束以及AOP的坐标
  3. 编写一个切面类,自定义的类,有切入点和通知组成,前者有表达式后者是增强的代码。
  4. 配置切面类,把类交给IOC容器管理<bean> 配置AOP的增强 前置通知 后置通知 主要以为方法的执行前后 切入点的写法是固定的</bean>

切入点的表达式

execution 固定

(public 可以不写

void 返回值 通用的写法*

包名.类名

.方法) (..)

AOP通知的类型

前置通知 目标方法执行前,进行增强

最终通知 目标方法执行成功或者失败,进行增强。类似finally

后置通知 目标方法成功后,进行增强

异常通知 目标方法失败后,进行增强

环绕通知 目标方法执行前后,都进行增强,存在问题为目标对象方法需要手动执行

AOP注解的方式

@各种关键字

纯注解的方式

写一个配置类就可以了

全部评论

相关推荐

2025-12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
优秀的大熊猫在okr...:多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞 评论 收藏
分享
头像
01-12 14:44
已编辑
百度_高级研发工程师
今天看到了某平台攻击牛友的帖子,段段今天打算为牛友们说句话,我们的努力到底有没有意义。&nbsp;(原文复述:感觉牛客就是当年那群做题区毕业了开始找工作还收不住那股味,颇有一种从年级第一掉到年纪第二后抱怨考不上大学的区味)&nbsp;&nbsp;粗鄙,无礼,傲慢,攻击,在这里我没有看到任何有用的分析,我只看到了屁股决定脑袋的攻击,我只看到了嫉妒和眼红。一、去医院不看病你去逛街吗&nbsp;去医院你不去看病你去逛街吗?去加油站不加油你去抽烟吗?去部队你不训练战斗技能你去养老吗?来牛客你不努力求职你来干什么来了。&nbsp;牛客本身就是个求职平台,大家分享有用的知识,分享面经,分享offer,分享求职经验的,来牛客不就干这个来了吗?有什么问题吗?...
给个好点的工作吧啊啊...:不知道我看的是不是和博主同样的帖子,我记得原帖是表达的是有些匿名老是发几十万的offer侮辱价,然后就有牛友觉得凡尔赛了导致后面的评论有些偏激。我觉得这个最近闫学晶那个事情有点类似了,她说他儿子一年只能赚七八十万家庭生活都难以为继,不说普通家庭,多少大厂的程序员都赚不到这个数字,大部分家庭看到这种发言肯定会难受的一p,生活的担子又这么重,人都是需要发泄情绪的,互联网就是个极佳的载体,所以很多人直接就喷她了,人在情绪发泄的时候是不思考的,否则就不叫发泄了。然后还有一个点,段哥假定了这些喷的人全都是“躺平的”,这点可能有失偏颇,很多人一直在努力,但是始终缺乏天时地利人和的某一个条件,这点相信段哥找工作的过程中深有体会。绝大部分人都以结果的失败去否认了努力的全过程,可能只是别人努力的方向错了。就像一次面试,可能你准备了很久,结果面试官就是比较奇葩,一直问没有学习到的领域或知识点,然后有人凭一个挂掉的结果就直接给你扣了一个“躺平”的帽子,觉得挂掉是你不够努力,您心里滋味如何?再说点近点的,我也是od,多少同事深夜无偿加班,涨过一分工资吗?多少外包的技术大牛因为学历被困在外包,连od都进不去,这些人难道不努力吗?只是限制与生活、公司制度等等之类的无奈罢了。说到努力,又想到李家琦79元眉笔事件,这么多年有没有认真工作?有没有涨工资?他嘴里说出来是那么的理所当然,打工牛马都知道“任劳任怨”,“认真工作”真能涨工资?只干活不发声就等着被摘果子吧,企业里永远都是“汇报杰出者”升的最快(当然不是所有企业),这种事情相信段哥包括我甚至大部分od都经历过。最近辞职回老家,和老爸散步每次他都会感慨街上的蔬菜小贩多不容易,他们晚上就窝在那种三轮小货车的驾驶室里,腿都伸不直,我们这里晚上零下了,只盖一条薄毛毯,始终舍不得住我们镇上几十块的酒店,因为一车蔬菜就赚几百块顶多一千而且要卖好久,这样的例子还有太多了。这种芸芸众生可能辛苦了一天之后,打开手机看到网上的凡尔赛发言,跟风喷了几句发泄情绪,我觉得这种人不应该扣上“躺平”的帽子。我觉得大部分正常人都是努力的,或者曾经努力过,但世界上有太多努力解决不了的无奈了,甚至说你都没有那个努力的机会,不过正因如此,才显得坚持不懈的努力奋斗之人的难得可贵,认清生活的真相后仍然热爱生活,敢于直面现实的淋漓。
段段STEADY觉醒与突...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务