欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Java

spring中AOP的注解方式介绍

程序员文章站 2022-05-24 18:50:44
...
  AOP(Aspect Oriented Programming):AOP的专业术语是"面向切面编程" 什么是面向切面编程,我的理解就是:在不修改源代码的情况下增强功能.好了,下面在讲述aop注解方式的情况下顺便会提到这一点.

一、搭建aop注解方式的环境(导入以下的包)

spring中AOP的注解方式介绍

二、实现

  环境搭建好了之后,就创建项目。

  1.创建接口类(CustomerDao)并添加两个方法

spring中AOP的注解方式介绍

  2.接口类创建好了后,自然是要new一个实现类(CustomerDaoImpl)并实现接口中的方法

  spring中AOP的注解方式介绍

  3.以上基础工作做完后,我们要用到springIOC的思想,将customerDaoImpl类交给spring管理

    在src目录下创建名为 applicationContext.xml 的xml文件spring中AOP的注解方式介绍

    bean是一个spring中的标签对, 你可以理解为一个小物品,id就是你取的名字,但是一般都是类名然后首字母小写, class中添加的是类的全路径

    开启自动注解/代理:只有开启了自动代理 ,我们接下来所编写的注解才有真正的应用

      spring中AOP的注解方式介绍

  4.环境和基础类都编写完成,接下来可以创建一个Demo类用于实现

  spring中AOP的注解方式介绍

首先我们需要将存在spring容器中的CustomerDaoImpl类拿出来

  代码''1'和'2'就是做这个事情的。

    '1'中顾名思义,你得告诉它从哪里拿,所以要给一个路径

    '2'中就是注解的方式,叫依赖注入:将xml文件中早就写好的类注入给字段customerDao,@Resource中的name就是指之前bean中的id值

 接下来就是测试了(需要添加代码'3''4'),编写一个run1()在方法上添加@Test,测试的时候双击方法名选中后右键选择在junit上运行,这就是单元测试了,很方便。

  有了前面的铺垫后,执行了run1方法后就可以显示实现类中的两行输出了

三、aop切面类

  1.创建切面类MyAspectAnno.java(在配置文件中添加一个bean,继续交给spring管理)

spring中AOP的注解方式介绍

 2.添加需要增强的功能方法

spring中AOP的注解方式介绍

   value中的代码是表达式, public 后的*是指任何类型的返回值都可以, save()是指在哪里增强或者说在哪里添加功能,这些代码写完后就是指 在save()执行后会执行 注解@After下的方法,即after() 这就是增强了

但是当我们多写几个通知(环绕通知,前置通知等等)每次都要添加表达式的代码,复制粘贴也很麻烦,这里我们可以添加一个切入点,实现如下:

spring中AOP的注解方式介绍

  以后我们只需要这样做就行了,下面添加了一个环绕通知:

  spring中AOP的注解方式介绍

      

  value值不再是很长的表达式了,也方便以后的维护

spring中AOP的注解方式介绍

上图已经很明确的说明了我们成功实现了功能的增强,利用aop思想并用注解的方式(我们所添加的通知分别在切入点(save())的之后和环绕着执行了)

以上就是spring中AOP的注解方式介绍的详细内容,更多请关注其它相关文章!