aop
来源:互联网 发布:数据库工程师考试 编辑:程序博客网 时间:2024/06/14 17:31
AOP
AOP:面向切面编程.是对OOP编程的提升,可改善程序结构.
主要思想是将共通处理封装成切面对象,利用Spring容器将切面对象
作用到某一批目标对象之上。当执行目标对象方法时,会执行切面对象的功能.
(1)相关概念
a. 切面:用于封装共通处理(即关注点),将来用于横切多个目标对象
b. 连接点:程序在调用时的某个特定点,比如方法调用或者异常处理.
c. 切入点: 连接点的集合,一个连接点集合的表达式(与正则表达式相似)
d. 通知:在连接点上执行的动作,比如前置通知,后置通知,异常通知,环绕通知,最终通知.
e. 织入:把切面连接到其他应用程序类型或对象上.该过程在运行时完成.
f.目标对象:目标对象
g. AOP代理:Spring容器会为每一个目标对象动态创建一个AOP代理对象.
由该对象执行切面处理方法和目标对象的方法
try{
执行前置通知方法
//执行环绕通知前半部分处理
执行目标对象方法
//执行环绕通知后半部分处理
执行后置通知方法
}catch(){
执行异常通知方法
}finally{
执行最终通知方法
}
(2)AOP示例(注意:引入aspectjrt.jar,aspectjweaver.jar,cglib-nodep-2.1_3.jar)
execution - 匹配方法执行的连接点,
这是你将会用到的Spring的最主要的切入点指示符。
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)
throws-pattern?)
任意公共方法的执行:
execution(public * *(..))
任何一个名字以“set”开始的方法的执行:
execution(* set*(..))
AccountService接口定义的任意方法的执行:
execution(* com.xyz.service.AccountService.*(..))
在service包中定义的任意方法的执行:
execution(* com.xyz.service..(..))
在service包或其子包中定义的任意方法的执行:
execution(* com.xyz.service...(..))
AOP:面向切面编程.是对OOP编程的提升,可改善程序结构.
主要思想是将共通处理封装成切面对象,利用Spring容器将切面对象
作用到某一批目标对象之上。当执行目标对象方法时,会执行切面对象的功能.
(1)相关概念
a. 切面:用于封装共通处理(即关注点),将来用于横切多个目标对象
b. 连接点:程序在调用时的某个特定点,比如方法调用或者异常处理.
c. 切入点: 连接点的集合,一个连接点集合的表达式(与正则表达式相似)
d. 通知:在连接点上执行的动作,比如前置通知,后置通知,异常通知,环绕通知,最终通知.
e. 织入:把切面连接到其他应用程序类型或对象上.该过程在运行时完成.
f.目标对象:目标对象
g. AOP代理:Spring容器会为每一个目标对象动态创建一个AOP代理对象.
由该对象执行切面处理方法和目标对象的方法
try{
执行前置通知方法
//执行环绕通知前半部分处理
执行目标对象方法
//执行环绕通知后半部分处理
执行后置通知方法
}catch(){
执行异常通知方法
}finally{
执行最终通知方法
}
(2)AOP示例(注意:引入aspectjrt.jar,aspectjweaver.jar,cglib-nodep-2.1_3.jar)
execution - 匹配方法执行的连接点,
这是你将会用到的Spring的最主要的切入点指示符。
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)
throws-pattern?)
任意公共方法的执行:
execution(public * *(..))
任何一个名字以“set”开始的方法的执行:
execution(* set*(..))
AccountService接口定义的任意方法的执行:
execution(* com.xyz.service.AccountService.*(..))
在service包中定义的任意方法的执行:
execution(* com.xyz.service..(..))
在service包或其子包中定义的任意方法的执行:
execution(* com.xyz.service...(..))
0 0
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- aop
- AOP
- AOP
- spring笔记
- myeclipse和svn通过代理方式更新代码
- 赶集网mysql开发36军规
- 共同学习Java源码--常用数据类型--String(八)
- linux下安装jdk
- aop
- Linux下安装ActiveMQ CPP
- 【BZOJ2103】【BZOJ2447】Fire 消防站【DFS】【TreeDP】
- 如何使用Nikto漏洞扫描工具检测网站安全
- Zookeeper 的学习与运用
- aop注解
- php让浏览器下载txt等类型的文件
- LRU和LFU的区别
- Elasticsearch 配置详解