簡體   English   中英

EntityScanner 是否檢測抽象類和接口? (Spring Boot 2.2.6)

[英]Does EntityScanner detect abstract classes and interfaces? (Spring Boot 2.2.6)

EntityScanner是否檢測到使用掃描儀正在尋找的特定注釋類型注釋的抽象類或接口? 在我的 Spring 引導應用程序中,我使用EntityScanner實例來查找所有具有特定注釋的類(例如@MyAnnotationType )。 但是,它不會檢測帶有該注釋的抽象類或接口:

@MyAnnotationType
public interface Foo

當我調用Set<Class<?>> entityClassSet = entityScanner.scan(MyAnnotationType.class)時,返回的entityClassSet中不包含Foo接口。 帶有@MyAnnotationType注釋的抽象類也會發生同樣的事情。 請注意,所有類都在@SpringBootApplication類 package 的子包中。 這是預期的行為嗎? 如果是這樣,是否可以使用EntityScanner的替代方法來檢測這些抽象類/接口? 非常感謝!

不,不是的。 EntityScanner僅用於檢測類。 查看EntityScanner的實現,您可以看到它在后台使用了ClassPathScanningCandidateComponentProvider

如果您需要掃描抽象類或接口,您可以使用它。 這樣做時,您必須覆蓋isCandidateComponent

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM