栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring---------基于xml的AOP开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring---------基于xml的AOP开发

基于xml的AOP开发 ①导入AOP相关坐标
  • 在pom.xml里面导入下面的坐标,aspectjweaver这个进行AOP配置更加好,目前主要要aspectjweaver,因为它比Spring里面的框架更加好


    
        SpringProject
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    SpringAOP
    
        
            org.springframework
            spring-context
            5.0.3.RELEASE
        
        
            org.aspectj
            aspectjweaver
            1.8.6
        

        
            org.springframework
            spring-test
            5.0.2.RELEASE
        
        
            junit
            junit
            4.11
        
    


②创建目标接口和目标类(内部有切点)
  • 目标类Target.java
package com.yy.aop;


public class Target implements TargetInterface {
    @Override
    public void save() {
        System.out.println("save running.......");
    }
}
  • 接口
package com.yy.aop;


public interface TargetInterface {
    public void save();
}
③创建切面类(内部有增强方法)
  • 切面类MyAspect
package com.yy.aop;


public class MyAspect {
    public void before(){
        System.out.println("前置增强....");
    }
    public void afterReturn(){
        System.out.println("后置增强....");
    }
}
④将目标类和切面类的对象创建权交给spring




    

    


⑤在applicationContext.xml中配置织入关系

在配置文件中告诉spring框架那些切点(目标方法)需要被增强,增强的是哪一种





        

    

    


    

        

            
            
        
    

⑥测试代码

XML配置AOP详解 1.切点表达式的写法

表达式语法:
execution([修饰符]返回值类型包名类名方法名(参数))

  • 访问修 饰符可以省略
  • 返回值类型、 包名、名、方法名可以使用星号*代表任意
  • 包名与类名之间一个点.代表当前包下的类,两个点… 示当前包及其子包下的类
  • 参数列表可以使用两个点…示任意个数,任意类型的参数列表

例如:

execution (public void com.yy.aop.Target.method() )

  1. com.yy.aop.Target这个包下面的method方法,并且这个方法没有返回值和参数

execution (void com.yy.aop.Target. *(..))

  1. Target这个类下面的任意方法(有任意参数),没有返回值的方法

execution(* com. yy. aop. *.*(..))

  1. 这个包下面的任意方法(有任意参数),返回值任意

execution(* com.yy.aop.*.*(..) )

  1. aop及其子包任意类的任意方法

execution(* *..*.*(..))

  1. 都任意,意义不大
2.通知类型

3.切点表达式的抽取

当多个增强的切点表达式相同时,可以将切点表达式进行抽取,在增强中使用pointcut-ref属性代替pointcut属性引用抽取后的切点表达式。

总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号