资讯专栏INFORMATION COLUMN

AOP的两种实现方式

Chao / 3116人阅读

摘要:本文只要记录的用法,以框架为例。我知道的有两种实现方法,路径切入和注解切入,区别在于切点,两者各有利弊,前者适合批量切入,后者比较灵活,加注解的类才会被切。自定义注解和定义自定义注解,无需其他,标识作用的注解。

大家都知道spring最大的特点就IOC和AOP,IOC是最常用的注入,就是被注入的类上加@Component注解,在需要用到时候,通过 @Autowired注入,不用每次都new出来。当然为了分清层级,@Component通常使用@Repository、@Service、@Controller代替。

本文只要记录AOP的用法,以springboot框架为例。

个人理解AOP就是拦截器,(可能是我理解不全面,反正我现在就认为它是拦截器,拦截器!拦截器!只不过娶个英文名字而已)。
功能:AOP可以在做某些事情之前或之后强塞一些操作。

我知道的有两种实现方法,路径切入和注解切入,区别在于切点,两者各有利弊,前者适合批量切入,后者比较灵活,加注解的类才会被切。

1、通过路径切入
2、通过注解切入

路径切入

1、新建切面类上面加俩注解 @Aspect @Component 缺一不可
2、@Pointcut写上要切入的包,也可以精确到类
3、@Before切入点之前要处理的业务
4、@After切入点之后要处理的业务

@Aspect
@Component
public class VisitAop {
    
  @Pointcut("execution(public * com.forum.controller.*.*(..))")
  public void log() {
  }

  @Before("log()")
  public void doBefore(JoinPoint joinPoint) {
        ........
  }
  
  @After("log()")
  public void doAfter() {
        ........
  }
}
注解切入

1、自定义注解
2、切入类@Aspect @Component 缺一不可
3、@Pointcut写上要切入注解(意思是带此注解者,必切!)
4、@Before、@After同上。

1、自定义注解
1.1 @Target和@Retention定义自定义注解,无需其他,标识作用的注解。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface VisitCount {
}

3、切入点
3.1和路径切入的区别在此

@Pointcut("@annotation(com.Annotation.VisitCount)")
JoinPoint

此外可以了解一些doBefore(),的参数JoinPoint,以便操作业务;

1、joinPoint.getSignature().getDeclaringType().getSimpleName(),切入的类名
2、joinPoint.getArgs(),切入方法的参数数组
3、joinPoint.getSignature().getName(),切入方法名

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/dev...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71685.html

相关文章

  • Spring入门IOC和AOP学习笔记

    摘要:入门和学习笔记概述框架的核心有两个容器作为超级大工厂,负责管理创建所有的对象,这些对象被称为。中的一些术语切面切面组织多个,放在切面中定义。 Spring入门IOC和AOP学习笔记 概述 Spring框架的核心有两个: Spring容器作为超级大工厂,负责管理、创建所有的Java对象,这些Java对象被称为Bean。 Spring容器管理容器中Bean之间的依赖关系,使用一种叫做依赖...

    wenyiweb 评论0 收藏0
  • Spring AOP实现机制

    摘要:本文主要介绍的两种代理实现机制,动态代理和动态代理。直接使用首先定义需要切入的接口和实现。我实现了一个工厂类来获取代理对象代理具体使用输出结果动态代理我们再新建一个来,这次不实现任何接口。 AOP(Aspect Orient Programming),一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在...

    dendoink 评论0 收藏0
  • 慕课网_《Spring入门篇》学习总结

    摘要:入门篇学习总结时间年月日星期三说明本文部分内容均来自慕课网。主要的功能是日志记录,性能统计,安全控制,事务处理,异常处理等等。 《Spring入门篇》学习总结 时间:2017年1月18日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://git...

    Ververica 评论0 收藏0
  • Spring 的基本应用——IoC 和 AOP

    摘要:的两大核心机制是控制反转和面向切面编程,对于初学者来讲,搞清楚这两个核心机制就掌握了的基本应用。配置对象张三添加标签对应属性名,是属性的值。若包含特殊字符,比如张三,使用张三进行配置,如下所示。 前言 对于任何一个 Java 开发人员,Spring 的大名一定如雷贯耳,在行业中可谓是无人不知、无人不晓,说它是 Java 领域第一框架毫不为过。 showImg(https://segme...

    DirtyMind 评论0 收藏0
  • Spring框架之我见(三)——IOC、AOP

    摘要:模块负责的所有面向切面的功能。总结的统一管理,降低了对象之间的耦合对主流的框架提供了很好的集成支持提供众多组件,事务管理,等具有高度可开放性,开发者可以自由选择部分或全部主要使用工厂模式和代理模式。 聊完了Spring框架中最重要的两种设计模式,我们来看一下Spring框架的模块和结构图。 Spring框架的结构 下图是Spring官方给出的Spring框架的结构图。 showImg(...

    khs1994 评论0 收藏0

发表评论

0条评论

Chao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<