Spring——AOP核心思想与实现
来源:互联网 发布:windows ndk下载 编辑:程序博客网 时间:2024/06/09 09:42
AOP(Aspect Oriented Programming):面向切面编程
核心思想:动态的添加和删除切面上的逻辑而不影响原来的执行代码
AOP相关概念:
1.JoinPoint
连接点,加入切面逻辑的位置。
@Before("execution(* com.spring.service..*.*(..))")
2.PointCut
JoinPoint的一个集合
@Pointcut("execution(* com.spring.service..*.*(..))") public void myMethod(){}; @Before("myMethod()") public void before(){ System.out.println("before"); }
3.Aspect
指切面类,@Aspect
4.Advice
切面点上的业务逻辑
@Before;@AfterReturning;@Around ;…
5.Target
被代理对象
6.Weave
织入。将切面逻辑添加到原来执行代码上的过程。
AOP概念图
Spring中AOP的实现
1.Annotation
<!-- 找到被注解的切面类,进行切面配置 aop Annotation方法--><aop:aspectj-autoproxy/>
@Aspect@Componentpublic class LogInterceptor { @Pointcut("execution(* com.spring.service..*.*(..))") public void myMethod(){}; @Before("myMethod()") public void before(){ System.out.println("before"); } @Around("execution(* com.spring.dao.impl..*.*(..))") public void aroundProcess(ProceedingJoinPoint pjp) throws Throwable{ System.out.println("around before"); pjp.proceed(); System.out.println("around after"); }}
2.xml
<!-- aop xml方法 --> <bean id="logInterceptor" class="com.spring.aop.LogInterceptor"/> <aop:config> <aop:pointcut id="logPointcut" expression="execution(* com.spring.service..*.*(..))"/> <aop:aspect id="logAspect" ref="logInterceptor"> <aop:before method="before" pointcut-ref="logPointcut"/> </aop:aspect> </aop:config>
AOP原理解析
Spring AOP主要通过动态代理实现。Struts2中的interceptor就是AOP的一种实现。
动态代理
阅读全文
1 0
- Spring——AOP核心思想与实现
- Spring AOP 实现和一些核心思想
- Spring IoC与AOP的核心思想
- Spring IoC与AOP的核心思想(转载)
- Spring IoC与AOP的核心思想(转载)
- Spring全家桶(八)AOP核心思想与AspectJ 5种类型通知
- Spring三大核心思想之三:AOP
- Spring的AOP思想研究和实现
- 【Spring 核心】(2):AOP的实现
- 浅谈spring——AOP思想(五)
- 浅谈spring——AOP思想(五)
- Spring学习:AOP思想
- Spring中的AOP思想
- Spring核心 AOP
- Spring核心之AOP
- Spring核心原理AOP
- Spring框架与AOP思想的研究与应用
- Spring框架与AOP思想的研究与应用
- python2.7 安装scrapy后报错
- java 单例设计模式
- 栈和队列的练习
- mongodb-索引
- 通过后缀表达式模拟计算器
- Spring——AOP核心思想与实现
- BZOJ 3670: [Noi2014]动物园 KMP题解
- 6.2 APP的签名与打包
- Java锁的实例解析
- E
- 数组——二分查找法
- zookeeper的环境搭建
- LVS系列—关于arp_ingnone和arp_announce的相关说明
- CSU-ACM2017暑假集训2-二分搜索 E