zoukankan      html  css  js  c++  java
  • 浅谈spring中AOP以及spring中AOP的注解方式

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

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

    二、实现

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

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

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

      

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

        在src目录下创建名为 applicationContext.xml 的xml文件

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

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

          

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

      

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

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

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

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

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

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

    三、aop切面类

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

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

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

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

     

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

      

          

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

     

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

       

  • 相关阅读:
    数学分析教材编写大纲
    鲁病案号1357324
    数据库-常见函数-分组函数
    Java中的快速输入输出
    数据库-数学函数
    IDEA 常用快捷键 (尚硅谷·宋红康 设置版)——高仿eclipse
    linux下网络死掉了肿么办?(Networking Disabled)
    zookeeper集群搭建
    WMware克隆虚拟机后出现网络无法连接的问题
    Partitioner编程——根据运营商分组统计用户上网流量
  • 原文地址:https://www.cnblogs.com/deepSleeping/p/7095900.html
Copyright © 2011-2022 走看看