本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sichunli_030
- sam123456gz
- 龙儿筝
- arpenker
- tanling8334
- kaizi1992
- gaojingsong
- xpenxpen
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- lemonhandsome
- luxurioust
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- kingwell.leng
- mwhgJava
- lich0079
最新文章列表
SpringAOP @AspectJ切面
切点函数
方法切点函数
execution()方法匹配模式串,@annotation()方法注解类名
方法入参切点函数
args()类名,@args()类型注解类型
目标类切点函数
within()类名匹配串,@within()类型注解类名,target()类名,@target()类型注解类名
代理类切点函数
this()类名
通配符
*
匹配任意字符,匹配上下文中的一个元素
..
匹配任意字符, ...
SpringAOP 自动创建代理
基于Bean配置名规则的自动代理创建器
实现类BeanNameAutoProxyCreator
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"
p:beanNames="*er"
p:interceptorNames=&q ...
SpringAOP 切面
切面 = 增强 + 切点(连接点为目标类的特定方法)
切面 = 增强(连接点为目标类的所有方法)
增强包含连接点的方位和织入代码,切点包含执行点信息(哪些类的哪些方法)
切点
org.springframework.aop.Pointcut接口描述切点
Pointcut由ClassFilter和MethodMatcher构成
ClassFilter
定位到特定类上
matches(Class cl ...
SpringAOP 增强
AOP步骤
通过切点和增强定位到连接点上
在增强中编写切面代码
Spring增强类型
前置增强 - org.springframework.aop.BeforeAdvice(MethodBeforeAdvice可用)
后置增强 - org.springframework.aop.AfterReturningAdvice
环绕增强 - org.springframework.intercept.Me ...
Spring AOP源码分析(八)SpringAOP要注意的地方
SpringAOP要注意的地方有很多,下面就举一个,之后想到了再列出来:
(1)SpringAOP对于最外层的函数只拦截public方法,不拦截protected和private方法,另外不会对最外层的public方法内部调用的其他方法也进行拦截,即只停留于代理对象所调用的方法。如下案例:
B类有两个public方法,foo1()和foo2(),foo1内部调用了foo2,简单如下:
publi ...
Spring AOP源码分析(七)ProxyFactoryBean介绍
这篇文章里面就要说说Spring自己的AOP,搞清楚哪种方式是Spring自己实现的AOP,哪种方式是Spring引入aspectj的AOP。
Spring自己的AOP实现在于ProxyFactoryBean。先看下使用案例(仍和之前的案例是一样的):接口AService、实现类AServiceImpl、通知MyBeforeAdvice
public interface AService {
...
Spring AOP源码分析(六)Spring AOP配置的背后
本篇文章主要对Spring AOP配置背后进行了哪些事情做下说明。还是如上类似的工程,在xml中AOP拦截配置如下:
<bean id="aspectBean" class="com.lg.aop.TestAspect" />
<aop:config expose-proxy="false" proxy-t ...
Spring AOP源码分析(五)Spring AOP的Cglib代理
上一篇文章介绍了Spring AOP的JDK动态代理的过程,这一篇文章就要介绍下Spring AOP的Cglib代理过程,仍然是使用上一篇文章的工程案例。
JDK动态代理是由JdkDynamicAopProxy来生成代理对象的,Cglib则是由CglibAopProxy来生成代理对象的。JdkDynamicAopProxy、CglibAopProxy实现了AopProxy接口,如下:
publ ...
Spring AOP源码分析(三)Spring AOP中的一些基本接口及其概念
本文章对一些SpringAOP的接口设计进行下介绍,主要是区分三者的关系,AOP联盟、Aspectj、SpringAOP所做的工作。
主要内容:
(1)Advice接口设计
(2)MethodInt ...
Spring AOP源码分析(二)JDK动态代理和CGLIB介绍
本篇是介绍java实现代理对象的两种方法,JDK动态代理和CGLIB。
JDK动态代理:针对你所调用的方法是接口所定义的方法。动态的创建一个类,通过实现目标类的接口来实现代理。
CGLIB:没有限制。通过继承目标类来创建代理类,实现代理。
下面看案例:
案例一,JDK动态代理:
Person和Animals都实现了Say接口sayHello方法。现在就需要对他们的sayHello方法进行拦截。
S ...
Spring AOP源码分析(一)AOP介绍和aspectj、SpringAOP入门
首先说说三个名词,面向对象、面向接口编程、面向切面编程(Aspect Oriented Programming 即AOP)。
针对java来说
面向对象:是对现实世界的描述,是后两者的基础,大前提。
面向接口编程:接口就是一组规则的集合,这组规则可以有不同的实现方式。如JDBC,它本身仅仅是接口规范,不同的数据库有不同的实现,我们通过JDBC这样的接口编程,就无需关心我们使用的是哪种数据库,可以方便 ...
Spring中的代理模式 AOP Annotation实现方法
之前我们有讲过代理模式和动态代理,其实在Spring中的AOP就是一种动态代理的体现。今天我们的话题就是Spring中的代理模式-AOP。
什么是AOP呢?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技 ...
SpringAop基础之静态代理和动态代理
java动态代理常用于做权限控制,细粒度权限如对方法的操作是否有权限,如果在每个方法前都判断一下用户是否有权限是非常麻烦的,因此用代理实现给每个方法前自动加上判断的功能。使用jdk的proxy类来实现代理。
一、静态代理:
/**
* 这是真是对象要继承的抽象类
* @author 罗辉
* @time 2013-4-15下午10:21:55
*/
public a ...