Spring AOP(面向切面编程)
Posted steakliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring AOP(面向切面编程)相关的知识,希望对你有一定的参考价值。
AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
简单例子:在某个项目里,非管理员不能对某些业务进行操作,代码如下:
从上面的代码我们可以看出这种方式达到了权限验证的功能,但是如果有100个方法的话,就会显得冗余,代码不好维护,这是传统的硬编码方式
我们对代码进行改进(以注解的方式)
1,新建一个切面(Aspect)
@Pointcut是切入点,我需要切入那些类或者那些方法,它有很多种方式(@annotation() execution() @within() @target() this() 等等 , 常用的是@annotation() , execution()
)
2.注解
3.实现
现在代码就变得简洁了,那个方法需要进行验证,我就加上注解就行
再来一个日志管理的简单例子
使用JoinPoint可以获取一些参数信息
通过面向切面编程,将公共代码抽离出来,进行统一化的处理,更加有效提高代码质量,以上只是一些再简单不过的例子,
以上是关于Spring AOP(面向切面编程)的主要内容,如果未能解决你的问题,请参考以下文章