SpringBoot AOP @Pointcut切入点表达式排除某些类方式

 更新时间:2021年11月24日 11:32:46   作者:myfwjy  
这篇文章主要介绍了SpringBoot AOP @Pointcut切入点表达式排除某些类方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot AOP @Pointcut切入点表达式排除某些类

场景

希望给service包下的所有public方法添加开始和结束的info log,但是需要排除和数据库相关的service

其他博文都推荐了

@Pointcut("execution(* com.demo.service.*.*(..)) && !execution(* com.demo.service.dbservice.*(..)) ") 

类似的用法,但是在实际操作中,发现&&这个关键字无法使用,只能使用and才能编译通过,并且@Pointcut只识别了前面半句表达式,and(&&)之后的内容被无视了。

使用以下方法满足了开发需求

    @Pointcut("execution(public * com.demo.service.*.*(..))")
    public void serviceMethods() {
    }
 
    @Pointcut("execution(public * com.demo.service.dbservice.*(..))")
    public void serviceMethods2() {
    }
 
    @Pointcut("serviceMethods() && !serviceMethods2()")
    public void serviceMethods3() {
    }
 
    @Before("serviceMethods3()")
    public void startLog(JoinPoint joinPoint) {
        String className = joinPoint.getSignature().getDeclaringType().getSimpleName();
        String methodName = joinPoint.getSignature().getName();
        logger.info("{}.{} start", className, methodName);
    }

AOP排除某些类型不拦截

/**
 * 日志记录切面
 */
@Aspect
public class Logger implements ILogger {
 @Resource(name="logService")
 private LogService logService ;
 
 @Pointcut("execution(* *..*Action*.*(..)) && !execution(* com.audaque.tjfxpt.web.sjcx.LogAction.*(..))")
 public void actionPointCut() {
 }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现邮件发送功能

    Java实现邮件发送功能

    这篇文章主要为大家详细介绍了Java实现邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Spring session redis 修改默认的序列化方法(案例)

    Spring session redis 修改默认的序列化方法(案例)

    这篇文章主要介绍了Spring session redis 修改默认的序列化方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Java GUI图形界面开发实现小型计算器流程详解

    Java GUI图形界面开发实现小型计算器流程详解

    本文章向大家介绍Java GUI图形界面开发实现小型计算器,主要包括布局管理器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • JAVA后端应该学什么技术

    JAVA后端应该学什么技术

    这篇文章主要介绍了JAVA后端应该学什么技术,对JAVA感兴趣的同学,可以规划一下
    2021-04-04
  • 使用BitSet位集合,一个重复校验工具

    使用BitSet位集合,一个重复校验工具

    这篇文章主要介绍了使用BitSet位集合,一个重复校验工具,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 如何查找YUM安装的JAVA_HOME环境变量详解

    如何查找YUM安装的JAVA_HOME环境变量详解

    这篇文章主要给大家介绍了关于如何查找YUM安装的JAVA_HOME环境变量的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • Java持久化XML文件配置解析

    Java持久化XML文件配置解析

    这篇文章主要为大家介绍了Java持久化XML文件配置解析,当你在使用 Java 编程语言 来编写软件时,实现持久化配置的方式。有需要的朋友可以借鉴参考下,希望能够有所帮助<BR>
    2022-03-03
  • win7下安装 JDK 基本流程

    win7下安装 JDK 基本流程

    这篇文章主要介绍了win7下安装 JDK 基本流程,需要的朋友可以参考下
    2014-05-05
  • springboot集成测试容器重启问题的处理

    springboot集成测试容器重启问题的处理

    这篇文章主要介绍了springboot集成测试容器重启问题的处理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • springboot整合EHCache的实践方案

    springboot整合EHCache的实践方案

    EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。这篇文章给大家介绍了springboot整合EHCache的实践方案,需要的朋友参考下
    2018-01-01

最新评论