您好,登錄后才能下訂單哦!
這篇文章主要講解了“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) { 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 { }
子模塊的項目,注解都不生效,包括@RestController @EnableScheduling @Scheduled等;
在子項目右鍵,clean install,會發現報錯了,解決完問題以后就可以了。
感謝各位的閱讀,以上就是“SpringBoot調用公共模塊的自定義注解失效如何解決”的內容了,經過本文的學習后,相信大家對SpringBoot調用公共模塊的自定義注解失效如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。