SpringAop在JAVA项目中的作用有哪些-创新互联
本篇文章给大家分享的是有关Spring Aop在JAVA项目中的作用有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
成都创新互联公司是一家集网站设计、成都网站建设、网站页面设计、网站优化SEO优化为一体的专业网络公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。假如没有aop,在做日志处理的时候,我们会在每个方法中添加日志处理,比如
但大多数的日子处理代码是相同的,为了实现代码复用,我们可能把日志处理抽离成一个新的方法。但是这样我们仍然必须手动插入这些方法。
但这样两个方法就是强耦合的,假如此时我们不需要这个功能了,或者想换成其他功能,那么就必须一个个修改。
通过动态代理,可以在指定位置执行对应流程。这样就可以将一些横向的功能抽离出来形成一个独立的模块,然后在指定位置
插入这些功能。这样的思想,被称为面向切面编程,亦即AOP。
为了在指定位置执行这些横向的功能,需要知道指定的是什么地方
例如上图,方法级别的aop实现,在一个程序执行链条中,把method2称为切点,也就是说在method2执行时会执行横切的功能,那么是在method2之前还是之后呢,又是执行什么呢?这些都由advice(通知)来指定。advice有5种类型,分别是
通知类型 简介
Before(前置通知) 目标方法调用之前执行
After(后置通知) 目标方法调用之后执行
After-returning(返回通知) 目标方法执行成功后执行
After-throwing(异常通知) 目标方法抛出异常后执行
Around(环绕通知) 相当于合并了前置和后置
把切点和通知合在一起就是切面了,一个切面指定了在何时何地执行何种方法。在spring aop中如此定义这个切面:
@Aspect @Component public class UserAspect { @Before("execution(* com.aop.service.impl.UserServiceImpl.login(..))") public void loginLog(){ System.out.println("user login"); } }
标题名称:SpringAop在JAVA项目中的作用有哪些-创新互联
文章路径:http://cdiso.cn/article/goicd.html