SpringBoot調(diào)用公共模塊的自定義注解失效的解決
調(diào)用公共模塊的自定義注解失效
項(xiàng)目結(jié)構(gòu)如下
我在 bi-common 公共模塊里定義了一個(gè)自定義注解,實(shí)現(xiàn)AOP記錄日志,bi-batch 項(xiàng)目已引用了 bi-common ,當(dāng)在 bi-batch 使用注解的時(shí)候,沒(méi)有報(bào)錯(cuò),但是切面卻失效。
自定義注解:
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface JobLog { }
切面實(shí)現(xiàn):
/** * 執(zhí)行任務(wù)時(shí)記錄日志 */ @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("開(kāi)始執(zhí)行" + joinPoint.getSignature().getName() + "任務(wù),參數(shù)為:" + Arrays.toString(joinPoint.getArgs())); } @After("pointcut()") public void logEnd(JoinPoint joinPoint){ log.info(""+joinPoint.getSignature().getName()+"方法運(yùn)行后。。。@After"); } }
注解使用:
/** * 這里使用了自定義注解,卻失效,但是沒(méi)報(bào)錯(cuò) */ @JobLog public Job createEsJob(String jobName) { return jobBuilderFactory.get(jobName) .start(esLogJobStep.step()) .build(); }
解決方法
原因:
其他工程沒(méi)有掃描公共模塊的包,沒(méi)有掃描到注解的位置。
解決方法1:
在啟動(dòng)類(lèi)加上公共模塊的包路徑,注意別忘記把原項(xiàng)目的包路徑也加上
@SpringBootApplication(scanBasePackages = { "aoshu.bi.platform.batch", "aoshu.bi.platform.common" })
解決方法2:
在配置類(lèi)里導(dǎo)入該切面實(shí)現(xiàn)
@Import({ aoshu.bi.platform.common.aspect.JobLogAspect.class }) @Configuration public class BatchConfigure { }
SpringBoot注解不生效,踩坑
子模塊的項(xiàng)目,注解都不生效,包括@RestController @EnableScheduling @Scheduled等;
解決方法
在子項(xiàng)目右鍵,clean install,會(huì)發(fā)現(xiàn)報(bào)錯(cuò)了,解決完問(wèn)題以后就可以了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖
這篇文章主要介紹了淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07IDEA?Debug過(guò)程中使用Drop?Frame或Reset?Frame實(shí)現(xiàn)操作回退的方法
在IDEA中就提供了一個(gè)幫助你回退代碼的機(jī)會(huì),但這個(gè)方法并不是萬(wàn)能的,好了,下面就來(lái)具體說(shuō)說(shuō)IDEA?Debug過(guò)程中使用Drop?Frame或Reset?Frame實(shí)現(xiàn)操作回退的方法,感興趣的朋友一起看看吧2022-04-04一文詳細(xì)springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟
Spring Boot可以很方便地與MySQL數(shù)據(jù)庫(kù)進(jìn)行整合,下面這篇文章主要給大家介紹了關(guān)于springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03Spring Boot使用JSR-380進(jìn)行校驗(yàn)的示例
這篇文章主要介紹了Spring Boot使用JSR-380進(jìn)行校驗(yàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫(kù)
本篇文章主要介紹了Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫(kù) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05spring boot 統(tǒng)一JSON格式的接口返回結(jié)果的實(shí)現(xiàn)
這篇文章主要介紹了spring boot 統(tǒng)一JSON格式的接口返回結(jié)果的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Springboot?配置線(xiàn)程池創(chuàng)建線(xiàn)程及配置?@Async?異步操作線(xiàn)程池詳解
這篇文章主要介紹了Springboot?配置線(xiàn)程池創(chuàng)建線(xiàn)程及配置?@Async?異步操作線(xiàn)程池詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09