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

第十五章、基于注解的AOP编程

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

第十五章、基于注解的AOP编程

1.基于注解的AOP编程的开发步骤
    原始对象额外功能切⼊点组装切面

@Aspect
public class MyAspect {
    @Around("execution(* login(..))")
    
    public Object arround(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("- ---aspect log ------");
        Object ret = joinPoint.proceed();
        return ret;
    }
}
上述9-12行和之前的实现MethodInterceptor接口类似,如下代码所示
    
    
   配置文件:
  
    
    
   
//告知Spring基于注解进⾏AOP编程
    

2.细节 1.切入点复用
切⼊点复⽤:在切⾯类中定义⼀个方法,方法上⾯@Pointcut注解 通过这种⽅式,定义切⼊点表达式,后续更加有利于切⼊点复⽤。

@Aspect
//切面类
public class MyAspect {
    @Pointcut("execution(* login(..))")
    public void myPointcut(){}
//    添加切入点复用方法后,将@Around("execution(* login(..))")改为    @Around(value = "myPointcut()")
    @Around(value = "myPointcut()")
    public Object arround(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("- ---aspect log ------");
        Object ret = joinPoint.proceed();
        return ret;
    }
}

2.动态代理的创建方式
AOP底层实现 2种代理创建⽅式
1. JDK 通过实现接⼝ 做新的实现类⽅式 创建代理对象
2. Cglib通过继承⽗类 做新的⼦类创建代理对象
		默认情况 AOP编程 底层应⽤JDK动态代理创建⽅式
如果切换Cglib呢?	
1. 注解AOP开发
 //告知Spring基于注解进⾏AOP编程
 将 改成
 
 2. 传统的AOP开发切换Cglib
  		 
        
# 组装
        
    
    改成
  在aop:config标签中添加属性proxy-target-class="true" 如下:
    
 	

本系列文章从Spring5原理开始深入浅出,从工厂特性=>依赖注入–IOC=>AOP编程=>Spring事务=>纯注解开发。本文来自观看B站孙帅Spring教程后做的笔记。持续更新…

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

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

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