spring学习第7天(PCD以及切点表达式)
1.PCD(PointCutDesigner)
spring的aop只针对方法进行aop代理,而apectj联盟的aop比之更加强大,还可以针对字段等进行切面编程
1.1:execution,用的最多的,用来匹配连接点方法
1.2:within:翻译是“在内部”,对某个/些类下的所有方法进行代理
1.3:this:确定动态代理之后的是某个类型
1.4:target:指明被代理的对象类型
1.5:args:指定方法的参数类型,例args(Integer,String)
1.6:@target:目标类型上有特定注解修饰
1.7:@args:表明参数上有特定注解修饰
1.8:@within:表明类上有特定注解修饰
1.9:@annotation:连接点方法上有特定的注解修饰
1.10:bean:spring aop提供的,指定有特定bean名字的
2.指示器的逻辑运算符:and(代替&&),or(代替||),not(代替!)
3.execution:编写格式为:
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern)throws-pattern?)
其中ret-type-pattern,name-pattern(param-pattern)这三个是必写的
?表示可选
modifiers-pattern:修饰符模式,可选
ret-type-pattern:返回类型模式,必写
declaring-type-pattern:声明类型模式,即包名和类名,之间用“.”表示什么什么下的什么,可选
name-pattern:方法名字模式,必写
param-pattern:参数模式,方法参数,必写
throws-pattern:异常模式,可选,格式为:throws 异常
通配符:*:表示任意名字 ..:任意段任意字符,比如com.service.impl包可以直接写成com.*.*或者com..即可
一些常见的例子:
1:execution(public * *(..)) 所有的公有方法
2:execution(* get*(..)) 任意以get开头的方法
3:execution(* com.service.impl.DeptService+) 表示接口的所有方法以及实现了该接口的所有方法都被aop代理
4:execution(* com..*(..)) com包下的以及com子包下的所有方法
关于第4个例子,若使用,需要在<aop:config>中加上一个属性proxy-target-class="true",声明使用cglib代理,不然会报代理错误
JDK代理只能对实现了接口的类生成代理,而不能针对类
* CGLIB是针对类实现代理的,主要对指定的类生成一个子类,并覆盖其中的方法,
我也不是很理解
spring学习第7天(PCD以及切点表达式)的更多相关文章
- 【spring-boot】spring aop 面向切面编程初接触--切点表达式
众所周知,spring最核心的两个功能是aop和ioc,即面向切面,控制反转.这里我们探讨一下如何使用spring aop. 1.何为aop aop全称Aspect Oriented Programm ...
- Spring学习笔记(四)-- Spring事务全面分析
通过本系列的文章对Spring的介绍,我们对Spring的使用和两个核心功能IOC.AOP已经有了初步的了解,结合我个人工作的情况,因为项目是金融系 统.那对事务的控制是不可缺少的.而且是很严格的控制 ...
- Spring学习(四)--面向切面的Spring
一.Spring--面向切面 在软件开发中,散布于应用中多处的功能被称为横切关注点(cross- cutting concern).通常来讲,这些横切关注点从概念上是与应用的业 务逻辑相分离的(但是往 ...
- [原创]java WEB学习笔记108:Spring学习---基于配置文件的形式实现AOP
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Spring学习总结(三)——Spring实现AOP的多种方式
AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术.AOP是OOP的补充,是Spring框架中的一个 ...
- Spring学习之AOP总结帖
AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...
- 我的Spring学习记录(二)
本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...
- 最全面的 Spring 学习笔记
http://www.codeceo.com/article/learn-spring.html 来源:泊浮目 分享到:更多36 Spring致力于提供一种方法管理你的业务对象.在大量Java EE的 ...
- Spring学习记录(十三)---基于xml文件配置AOP
上一篇讲了用注解配置AOP,现在讲用xml怎么配置AOP 其实逻辑是一样的,只是用xml的方法,要把这种逻辑写出来,告诉spring框架去执行. 例子:这里的例子和上一篇的例子一样.换成xml方式 / ...
随机推荐
- NO34 awk
- JMeter-响应断言设置
针对如上请求,可以设置3种相应断言: 1. 2. 3.
- java 十大经典排序算法
十大排序算法可以说是每个程序员都必须得掌握的了,花了一天的时间把代码实现且整理了一下,为了方便大家学习,我把它整理成一篇文章,每种算法会有简单的算法思想描述,为了方便大家理解,我还找来了动图演示:这还 ...
- 管理和安装 chart【转】
安装 chart 当我们觉得准备就绪,就可以安装 chart,Helm 支持四种安装方法: 安装仓库中的 chart,例如:helm install stable/nginx 通过 tar 包安装,例 ...
- 继OpenJDK 之后,OpenJFX也将迁移到 Git
导读 近日 OpenJFX 项目负责人 Kevin Rushforth 提交了一份将 OpenJFX 迁移到 GitHub 的提案. OpenJFX 是 JavaFX 的开源实现.JavaFX 是一个 ...
- Kubernetes企业安全
导读 所有利益相关者预先参与一个布局良好的计划,这是构建更安全的容器环境的第一步.如今,容器仍然是应用程序部署和迁移的主流技术.行业专家Paul Rubens将其分解为可以理解的几个部分——陷阱.容器 ...
- 第1节 HUE:14、15、16、hue与hdfs、yarn集群、hive、impala、mysql的整合
3.hue与其他框架的集成 3.1.hue与hadoop的HDFS以及yarn集成 第一步:更改所有hadoop节点的core-site.xml配置 记得更改完core-site.xml之后一定要重启 ...
- $('#myModal').modal('show') //显示$('#myModal').modal('hide')隐藏
你这样试试,这是官方文档的写法 $('#myModal').modal('show') //显示$('#myModal').modal('hide')隐藏 //重复点击的隐藏显示有一个很更方便的写法$ ...
- uni app中关于图片的分包加载
因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...
- Typescript 实战 --- (9)ES6与CommonJS的模块系统
1.ES6模块系统 1-1.export 导出 (1).单独导出 // a.ts export let a = 1; (2).批量导出 // a.ts let b = 2; let c = 3; ex ...