[英]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.