SpringBoot調(diào)用公共模塊的自定義注解失效的解決
調(diào)用公共模塊的自定義注解失效
項目結(jié)構(gòu)如下

我在 bi-common 公共模塊里定義了一個自定義注解,實現(xiàn)AOP記錄日志,bi-batch 項目已引用了 bi-common ,當(dāng)在 bi-batch 使用注解的時候,沒有報錯,但是切面卻失效。
自定義注解:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface JobLog {
}
切面實現(xiàn):
/**
* 執(zhí)行任務(wù)時記錄日志
*/
@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("開始執(zhí)行" + joinPoint.getSignature().getName() + "任務(wù),參數(shù)為:" + 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:
在配置類里導(dǎo)入該切面實現(xiàn)
@Import({
aoshu.bi.platform.common.aspect.JobLogAspect.class
})
@Configuration
public class BatchConfigure {
}
SpringBoot注解不生效,踩坑
子模塊的項目,注解都不生效,包括@RestController @EnableScheduling @Scheduled等;
解決方法
在子項目右鍵,clean install,會發(fā)現(xiàn)報錯了,解決完問題以后就可以了。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
win10操作系統(tǒng)下重啟電腦java環(huán)境變量失效
這篇文章主要介紹了win10操作系統(tǒng)下重啟電腦java環(huán)境變量失效,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
利用線程實現(xiàn)動態(tài)顯示系統(tǒng)時間
編寫Applet小程序,通過在HTML文檔中接收參數(shù),顯示當(dāng)前的系統(tǒng)時間,需要的朋友可以參考下2015-10-10
詳解分別用Kotlin和java寫RecyclerView的示例
本篇文章主要介紹了詳解分別用Kotlin和java寫RecyclerView的示例,詳解分別用Kotlin和java寫RecyclerView的示例2017-12-12

