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

网友投稿 612 2022-08-27


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

目录调用公共模块的自定义注解失效项目结构如下解决方法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) {

HBbjuucG 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();

}

解决方法

原因:

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

解决HBbjuucG方法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 @ScHBbjuucGheduled等;

解决方法

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python项目打包成exe文件(将python文件打包成exe可运行文件)
下一篇:python GUI编程(Tkinter)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~