Spring AOP Example 文件下载:
文件下载:
http://files.cnblogs.com/wucg/spring_aop_excise.zip
P:124 spring核心技术
P225: spring doc
可以把Advisor简单理解为一个Advice和一个Pointcut的组合.由于Advisor依赖
Pointcut来判断是否应该将切面织入到目标方法中.
几个重要的Pointcut实现:
1.NameMatchMethodPointcut
对应的类:org.springframework.aop.support.NameMatchMethodPointcutAdvisor
2.AbstractRegexpMethodPointcut : 要求匹配完整的类名和方法名,例如
namespaceName.className.methodName的一个合科条件的正则表达式 为".*methodName"
对应的类: 使用自动代理:
为了向客户端完全屏蔽目标Bean,Spring还提供了自动代理功能
1.自动为多个目标Bean实现AOP代理
2.避免客户端直接访问目标Bean Spring的自动代理功能实际上是由 BeanPostProcessor实现的.在容器载入
XML配置文件后,具有自动代理功能的BeanPostProcessor就可以修改Bean的定义了
将所有需要实现代理的目标Bean全部修改为代理Bean,而id不变. //------------------------------------
Spring提供了几种常见的实现自动代理的BeanPostProcessor.
1.BeanNameAutoProxyCreator:根据Bean的id或name属性来查找目标Bean并自动为
其代理.
2.DefaultAdvisorAutoproxyCreator:根据当前窗口中的Advisor决定每个Bean是否可 以被代理,如果可以,就自动创建代理,并自动织入所有可用的Advisor.
3.AspectJInvocationContextExposingAdvisorAutoProxyCreator:根据AspectJ的语 法规则来决定是否为一个Bean创建代理.
4.AnnotationAwareAspectJAutoProxyCreator:根据AspectJ的注解来决定 Auto Proxy:
org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator
org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator //----------------------------------------
引介(Introduction)是一种特殊类型的拦截器,和普通的Interceptor不同,引介不能 作用于任何切入点,引介只能作用于类,而非方法级, 为一个已有的类动态增加接口. //----------------------------------------
Spring支持以下几种主要的AspectJ风格的PointCut.
1. execution:匹配方法执行的切入点,这也是在Spring中最常用的切入点定义方式.
2. within,匹配特定类型的切入点
3. this,匹配特定实例的切入点
Spring AOP Example 文件下载:的更多相关文章
- 学习AOP之深入一点Spring Aop
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...
- 学习AOP之认识一下Spring AOP
心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...
- spring aop
什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将 ...
- spring aop注解方式与xml方式配置
注解方式 applicationContext.xml 加入下面配置 <!--Spring Aop 启用自动代理注解 --> <aop:aspectj-autoproxy proxy ...
- 基于Spring AOP的JDK动态代理和CGLIB代理
一.AOP的概念 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的 ...
- Spring AOP详解
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
- Spring AOP实例——异常处理和记录程序执行时间
实例简介: 这个实例主要用于在一个系统的所有方法执行过程中出线异常时,把异常信息都记录下来,另外记录每个方法的执行时间. 用两个业务逻辑来说明上述功能,这两个业务逻辑首先使用Spring AOP的自动 ...
- 从零开始学 Java - Spring AOP 实现用户权限验证
每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就 ...
- 从零开始学 Java - Spring AOP 实现主从读写分离
深刻讨论为什么要读写分离? 为了服务器承载更多的用户?提升了网站的响应速度?分摊数据库服务器的压力?就是为了双机热备又不想浪费备份服务器?上面这些回答,我认为都不是错误的,但也都不是完全正确的.「读写 ...
随机推荐
- Aizu 2303 Marathon Match (概率)
因为第i个人休息j次服从二项分布,算一下组合数. 数据范围小. 求出第i个人休息j次的概率和对应的时间之后,全概率公式暴力统计. #include<bits/stdc++.h> using ...
- go语言,第三方包相对路径导入包引起的问题及解决方案(goquery)
对go语言而言,跟踪init很显然包有且仅有一次被导入的可能. 但是重复引用了goquery包,后编译出现问题 项目涉及相关目录 ├── main.go└── parse └── parse.g ...
- hdu-1874 畅通工程续---模板题
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目大意: 求起点到终点的最短距离 解题思路: 注意重边,其他的就是模板 #include&l ...
- securetextentry 切换后有空格问题解决
搜索发现这个问题,网上的解决方法不明确,对于小白怎么办 直接上代码: - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundCo ...
- python_57_高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. def add(a,b,f): return f(a)+f(b) res=add(-3,- ...
- python_54_函数调用函数
logger函数的定义要放在函数调用之前,在test1(1,2)前边,一下两种都可以 def test1(x,y): print(x,y) logger('Test1') def logger(sou ...
- 利用Theano理解深度学习——Multilayer Perceptron
一.多层感知机MLP 1.MLP概述 对于含有单个隐含层的多层感知机(single-hidden-layer Multi-Layer Perceptron, MLP),可以将其看成是一个特殊的Logi ...
- 使用vue-cli创建项目
使用Vue UI创建.管理项目 1.全局安装vue-cli 3.0 npm install -g @vue/cli 2.启动vue ui 创建项目: vue ui
- Linux命令的常用
使用chown命令更改文件拥有者 在 shell 中,可以使用chown命令来改变文件所有者.chown命令是change owner(改变拥有者)的缩写.需要要注意的是,用户必须是已经存在系统中的, ...
- Javascript的数据类型和转换
JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...