Spring基础-4-AOP注解
来源:互联网 发布:化工项目网络计划绘制 编辑:程序博客网 时间:2024/06/09 16:15
1,注解
1.1,通知类型
- @Before – 前置通知
- @AfterReturing – 后置通知
- @Around – 环绕通知(目标对象方法默认不执行的,需要手动执行)
- @After – 最终通知
- @AfterThrowing – 异常抛出通知
1.2,配置通用的切入点
使用@Pointcut定义通用的切入点
@Aspectpublic class MyAspectAnno { @Before(value="MyAspectAnno.fn()") public void log(){ System.out.println("记录日志..."); } @Pointcut(value="execution(public void com.itheima.demo1.CustomerDaoImpl.save())") public void fn(){}}
2,注解方式完成AOP的开发
2.1,导入依赖和约束
2.2,创建包结构,编写具体的接口和实现类
- package:com.itheima.demo2
- Interface:CustomerDao
- Impl:CustomerDaoImpl
2.3, 目标类配置到Spring中
<bean id="customerDao" class="com.itheima.demo3.CustomerDaoImpl"/>
2.4,定义切面类
@Aspectpublic class MyAspectAnno { @Before("MyAspectAnno.pointcut1()") public void before(){ System.out.println("前置通知==========="); } @Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.save(..))") private void pointcut1(){} }
2.5,开启aop注解的自动代理
<aop:aspectj-autoproxy/>
2.6,在配置文件中完成aop的配置
<bean id="myAspectAnno" class="cn.itcast.spring.demo4.MyAspectAnno"></bean>
2.7,其他注解
public class MyAspectAnno { @Before("MyAspectAnno.pointcut1()") public void before(){ System.out.println("前置通知==========="); } @AfterReturning("MyAspectAnno.pointcut2()") public void afterReturning(){ System.out.println("后置通知==========="); } @Around("MyAspectAnno.pointcut3()") public Object around(ProceedingJoinPoint joinPoint) throws Throwable{ System.out.println("环绕前通知=========="); Object obj = joinPoint.proceed(); System.out.println("环绕后通知=========="); return obj; } @AfterThrowing("MyAspectAnno.pointcut4()") public void afterThrowing(){ System.out.println("异常抛出通知========"); } @After("MyAspectAnno.pointcut4()") public void after(){ System.out.println("最终通知=========="); } @Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.save(..))") private void pointcut1(){} @Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.update(..))") private void pointcut2(){} @Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.delete(..))") private void pointcut3(){} @Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.find(..))") private void pointcut4(){}}
阅读全文
0 0
- Spring基础-4-AOP注解
- Spring AOP基础 注解方式
- Spring AOP切面基于注解基础学习
- spring(AOP) 注解实现aop
- spring aop注解和xml两种方式的基础
- spring注解实现AOP
- Spring Aop 注解
- spring aop 注解
- spring aop注解Demo
- spring中 aop注解
- Spring AOP 完全注解
- Spring AOP注解配置
- Spring-AOP注解
- spring aop 注解方式
- Spring AOP 注解配置
- Spring中AOP注解
- Spring注解实现AOP
- spring aop 基于注解
- 一天
- MySQL性能测试工具之mysqlslap使用详解
- CCF之画图
- python实现youdao终端脚本
- Linux下tomcat实时日志查看
- Spring基础-4-AOP注解
- CSAPP阅读笔记
- HDU
- POJ 1679 The Unique MST 次小生成树
- 一次请求的源码分析过程
- bootstrap table使用总结
- cordova构建app偶遇mergeDebugResources失败的问题
- HDU-5938:Four Operations(DP)
- 【c++基础】笔记(二)