武林秘籍之Spring AOP 切面编程的简单应用
年轻人,我观你骨骼精奇,定是万里无一的练武奇才,老夫这里有一本失传已久的武林秘籍,现赠于你,望你勤加苦练,早日修成正果...
AOP(面向切面编程):Aspect Oriented Programming
第一式、使用切面编程需要的配置
伦理片 http://www.dotdy.com/
开启切面编程功能,需要在applicationContext.xml文件中配置。
作用是:声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,植入切面
第二式、切面编程
- @Aspect
放在类头上,把这个类作为一个切面即声明一个切面 @Pointcut
放在方法头上,定义一个可被别的方法引用的切入点表达式。
Pointcut是Join Point(连接点)的集合,即它是程序中需要注入Advice(切入点上执行的行为)的位置的集合,指明Advice要在什么样的条件下才能被触发。- 2.1、Pointcut表达式定义:Pointcut 是指哪些方法需要被执行"AOP",是由"Pointcut Expression"来描述的。 Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合。
args()
execution()
this()
target()
within()
annotation - 2.2、Pointcut表达式的格式:其中execution 是用的最多的,其格式为:execution(方法操作权限?返回值?方法所在包?方法名(参数)异常?),其中返回值,方法名和参数是必须的。
常用Pointcut表达式的讲解:execution( com.glodon.gcxx.dao.hibimpl..(..)) ,这是com.glodon.gcxx.dao.hibimpl 包下所有的类的所有方法。
第一个代表所有的返回值类型 ,第二个代表所有的类, 第三个代表类所有方法 ,最后一个..代表所有的参数。
下面给出一些常见切入点表达式的例子。
- 2.1、Pointcut表达式定义:Pointcut 是指哪些方法需要被执行"AOP",是由"Pointcut Expression"来描述的。 Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合。
- 3、advice
5种通知:advice。
3.1、@Before,前置通知,放在方法头上。
3.2、@After,后置【finally】通知,放在方法头上。
3.3、@AfterReturning,后置【try】通知,放在方法头上,使用returning来引用方法返回值。
3.4、@AfterThrowing,后置【catch】通知,放在方法头上,使用throwing来引用抛出的异常。
3.5、@Around,环绕通知,放在方法头上,这个方法要决定真实的方法是否执行,而且必须有返回值。
武林秘籍之Spring AOP 切面编程的简单应用相关推荐
- Aop切面编程原理和Spring实现
Aop切面编程概念 AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等 AOP实现的原理就是动态代理,在有接口的情况下 ...
- Spring面向切面编程(AOP)详解
Spring面向切面编程(AOP)详解 面向切面编程(AOP)是Spring框架的另外一个重要的核心内容. 而在讲AOP之前,先来了解一下动态代理这个概念,因为AOP基于动态代理. 动态代理概念:在程 ...
- Spring中的AOP切面编程的三种实现方式
文章目录 Spring中的AOP切面编程的三种实现方式 1.最基本AOP的实现 a.引入jar包 b.编写通知类,这里以后置通知和环绕通知类为例子进行说明 c.在SpringIOC容器中配置 d.测试 ...
- java切面类整合_SpringBoot2.x【五】整合AOP切面编程
SpringBoot2.x[五]整合AOP切面编程 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方面. ...
- Spring面向切面编程
JAVA就业套餐课:https://edu.csdn.net/combo/detail/1230 第1章主要介绍了Spring管理实体对象的应用,通过ApplicationContext ...
- SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.AOP切面编程 1.什么是AOP编程 在软件业,AOP为Asp ...
- Spring AOP切面的时候参数的传递
Spring AOP切面的时候参数的传递 Xml: <?xml version="1.0" encoding="UTF-8"?> <beans ...
- spring aop 切面添加日志
这是一个非常简单的spring aop切面添加日志的程序,下面来看一下这个程序 1.程序使用jar包 2.切面类LoggingAspect.java package com.cailei.aop.as ...
- Spring AOP 切面@Around注解的具体使用
@Around注解可以用来在调用一个具体方法前和调用后来完成一些具体的任务. 比如我们想在执行controller中方法前打印出请求参数,并在方法执行结束后来打印出响应值,这个时候,我们就可以借助于@ ...
最新文章
- 两小时入门 Docker
- 第二周 数据分析之展示 Matplotlib基础绘图函数实例
- java家具网站需求分析_基于jsp的家具销售-JavaEE实现家具销售 - java项目源码
- conda install 换源_科学网—Anaconda 报错Multiple Errors Encountered和添加国内镜像以及换源和恢复默认源 - 张伟的博文...
- 686. Repeated String Match
- 190506每日一句
- LightGBM 二元分类、多类分类、 Python的回归和分类器应用
- 茗创:近红外数据处理业务
- 自由软件、开源软件、免费软件相互区别
- 当年发明“熊猫烧香”病毒的天才,如今怎么样了?
- 全国省市区的数据导入
- 超微服务器主板ipmi证书,超微主板的服务器使用IPMI远程安装操作系统教程
- Java调用阿里云OSS下载文件
- vue实现微信公众号微信登录
- TCP/IP详解(卷1)勘误表
- Standardized QCI characteristics
- 成为用友ISV优选伙伴,迈丹科技8个月经历了一次脱胎换骨
- 岩土鬼谷子之端午脑洞
- nginx服务器的文档根目录,nginx更改根目录
- 解决CAD使用dwg to pdf打印时,新建自定义纸张,重新打开CAD后自定义纸张消失的问题
热门文章
- android 爬虫获取邮箱,python爬虫源码学习:爬虫smtp邮件实时推送(2)
- 《C++ primer plus》学习笔记
- physxloader.dll x86_PhysXLoader.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
- Android人脸识别和证件识别
- table标签的不规则布局
- Linux下的cmt2300a驱动
- win10下搭建grpc 以及demo(idea maven java)
- 28岁程序员的逃跑计划,从送外卖开始
- Minecraft 1.19.2 Forge模组开发 02.物品栏+方块+物品
- python计算负数的平方根将产生_pow(x,0.5)能够计算x的平方根,计算负数的平方根将产生:_学小易找答案...