SpringBoot调用公共模块的自定义注解失效的解决

 更新时间:2022年02月18日 15:28:01   作者:章全蛋  
这篇文章主要介绍了SpringBoot调用公共模块的自定义注解失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

调用公共模块的自定义注解失效

项目结构如下

我在 bi-common 公共模块里定义了一个自定义注解,实现AOP记录日志,bi-batch 项目已引用了 bi-common ,当在 bi-batch 使用注解的时候,没有报错,但是切面却失效。

自定义注解:

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

切面实现:

/**
 * 执行任务时记录日志
 */
@Aspect
@Component
@Order(1)
@Slf4j
public class JobLogAspect {
    @Pointcut("@annotation(aoshu.bi.platform.common.annotation.JobLog)")
    public void pointcut() {
    }
    @Before("pointcut()")
    public void  logStart(JoinPoint joinPoint) {
        log.info("开始执行" + joinPoint.getSignature().getName() + "任务,参数为:" + Arrays.toString(joinPoint.getArgs()));
    }
    @After("pointcut()")
    public void logEnd(JoinPoint joinPoint){
        log.info(""+joinPoint.getSignature().getName()+"方法运行后。。。@After");
    }
}

注解使用:

	/**
	 *  这里使用了自定义注解,却失效,但是没报错
	 */
    @JobLog
    public Job createEsJob(String jobName) {
        return jobBuilderFactory.get(jobName)
                .start(esLogJobStep.step())
                .build();
    }

解决方法

原因:

其他工程没有扫描公共模块的包,没有扫描到注解的位置。

解决方法1:

在启动类加上公共模块的包路径,注意别忘记把原项目的包路径也加上

@SpringBootApplication(scanBasePackages = {
        "aoshu.bi.platform.batch",
        "aoshu.bi.platform.common"
})

解决方法2:

在配置类里导入该切面实现

@Import({
        aoshu.bi.platform.common.aspect.JobLogAspect.class
})
@Configuration
public class BatchConfigure {
}

SpringBoot注解不生效,踩坑

子模块的项目,注解都不生效,包括@RestController @EnableScheduling @Scheduled等;

解决方法

在子项目右键,clean install,会发现报错了,解决完问题以后就可以了。

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

相关文章

  • Java实现简单双色球摇奖功能过程解析

    Java实现简单双色球摇奖功能过程解析

    这篇文章主要介绍了Java实现简单双色球摇奖功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java Optional实践(小结)

    Java Optional实践(小结)

    这篇文章主要介绍了Java Optional实践(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Java泛型机制必要性及原理解析

    Java泛型机制必要性及原理解析

    这篇文章主要介绍了Java泛型机制必要性及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java 详细讲解用堆解决Top-k问题

    Java 详细讲解用堆解决Top-k问题

    TopK问题即在N个数中找出最大的前K个,这篇文章将详细讲解如何利用小根堆的方法解决TopK问题,文中代码具有一定参考价值,快跟随小编一起学习一下吧
    2022-04-04
  • Spring的事件和监听器-同步与异步详解

    Spring的事件和监听器-同步与异步详解

    这篇文章主要介绍了Spring的事件和监听器-同步与异步详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java Collections工具类中常用算法解析

    Java Collections工具类中常用算法解析

    在软件开发中,算法是非常重要的一部分,它们可以提供高效的数据处理和操作,这篇文章主要为大家介绍了Collections 工具类集合框架中常用算法,感兴趣的可以了解一下
    2023-06-06
  • 一文带你深入了解Java8 Stream流式编程

    一文带你深入了解Java8 Stream流式编程

    在实际项目当中,若能熟练使用Java8 的Stream流特性进行开发,就比较容易写出简洁优雅的代码。本文主要就是基于实际项目常用的Stream Api流式处理总结,希望对大家有所帮助
    2023-04-04
  • SpringBoot使用统一异常处理详解

    SpringBoot使用统一异常处理详解

    这篇文章主要为大家详细介绍了SpringBoot使用统一异常处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • java多线程编程之Synchronized关键字详解

    java多线程编程之Synchronized关键字详解

    这篇文章主要为大家详细介绍了java多线程编程之Synchronized关键字,感兴趣的朋友可以参考一下
    2016-05-05
  • Java双重校验锁单例原理

    Java双重校验锁单例原理

    大家好,本篇文章主要讲的是Java双重校验锁单例原理,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01

最新评论