spring aop注解配置
来源:互联网 发布:如何编辑mac桌面图标 编辑:程序博客网 时间:2024/05/02 01:31
spring aop是面向切面编程,使用了动态代理的技术,这样可以使业务逻辑的代码不掺入其他乱七八糟的代码
可以在切面上实现合法性校验、权限检验、日志记录。。。
spring aop 用的多的有两种配置方法:注解配置和xml配置
注解配置更好,友好重构、错误也好检查在这里只讲注解配置
aop概念
- 切面:切面类,里面有切点有通知,切面包括了一切(在哪切,干什么)
- 切点:定义了在个地方切
- 通知:定义了在切点处做些什么
- 连接点:所有可以被切的地方
切面配置
@Aspectpublic class LibraryAOPConf {}@Aspect标记的类即是一个切面,在这个类中定义切面和通知
开启自动代理
因为AOP是代理实现的,将切面放进bean容器是不会生成代理对象的,所以要开启自动代理@Configuration@EnableAspectJAutoProxypublic class LibraryConf {}在装配bean的配置类加上@EnableAspectJAutoProxy就可以了或者在xml中加上<aop:aspectj-autoproxy>
切点配置
配置切点需要用到切点表达式
当通知方法需要拿到切点的参数的时候,就需要参数传递
@Pointcut("execution(* aop.library.BookShop.sell(Book))"+"&&"+"args(book)") public void sell(Book book){} @Before("sell(book)") public void charge(Book book){ System.out.println("这本书叫:"+book); }切点拦截了aop.library.BookShop.sell(Book)方法,并且将参数Book赋给了sell(book)切点方法,然后通知方法又获取了切点方法中的book
通知配置
//基于切点表达式配置 @Before("execution (* *.*.*(..))")//*号依次为返回类型、包名、类名、方法名 public void charge(Book book){ System.out.println("这本书叫:"+book); } //基于切点配置 @Before("sell(book)")//sell(book)是一个切点 public void charge(Book book){ System.out.println("这本书叫:"+book); }通知有5种类型:
- 前置通知@Before
- 后置通知(不管是否异常)@After
- 异常通知@AfterThrowing
- 返回通知@AfterReturning
- 环绕通知@Around
查看原文:http://zswlib.com/2016/07/14/spring-aop%e6%b3%a8%e8%a7%a3%e9%85%8d%e7%bd%ae/
0 0
- Spring AOP注解配置
- Spring AOP 注解配置
- Spring---AOP(注解配置)
- spring aop注解配置
- Spring AOP 注解配置
- spring-aop注解配置
- 使用注解配置spring aop
- Spring 注解方式配置aop:
- 使用注解配置Spring AOP
- spring AOP 零注解配置
- 注解方式配置spring-aop
- Spring基于注解配置AOP
- Spring AOP Aspectj 注解配置
- spring aop注解配置web日志
- spring aop注解配置web日志
- spring aop注解配置web日志
- Spring Aop实例之AspectJ注解配置
- Spring AOP(二、注解配置实现)
- telnet
- C语言写五子棋练习
- 常用STL类的使用
- Javascript正则表达式
- c语言指针,简单一句话指针就是地址
- spring aop注解配置
- java反射:泛型
- Oracle导出表(即DMP文件)的两种方法
- 【计算机问题】:火狐浏览器不能下载东西
- 自定义ActionProvider ToolBar 自定义Menu小红点
- ViewPager和Fragment实现滑动标签页步骤以及方法总结
- shutdown
- Xutils3 学习1
- POJ 3669:Meteor Shower