簡體   English   中英

如何在Spring Boot中為通用類提供類類型?

[英]How to provide the classtype for generic classes in spring-boot?

我想創建一個小的框架,並希望提供一些應該加載的默認類,因為用戶沒有提供實現類。

這種行為應類似於spring-boot

問題:我想創建的許多類都應該是通用的,並且只需要由用戶定義類類型即可。

無論如何,這迫使用戶顯式實現這些類中的每一個並提供類類型。

我有什么辦法可以解決這個問題嗎? 用戶如何提供必須在泛型上使用的類類型,而不必顯式實現泛型類? 那可能嗎?

框架:

@Configuration
public class AppConfig {

    @Bean
    @ConditionalOnMissingBean
    public BaseValidator<T extends MyReq> defaultValidator() {
        return new BaseValidator<T extends MyReq>();
    }
}

自定義應用:

@Configuration
@EnableAutoConfiguration
@Import(AppConfig.class)
public CustomConfig {

}

//我想防止用戶必須實現每個通用類,如下所示:

@Component
public class MyValidator extends BaseValidator<CustomReq> {

}

用戶是否可能僅提供CustomReq.class ,並且BaseValidator會自動使用提供的類類型實例化?

您可以使用Class<T extends MyReq>構造函數arg克服它,如下所示:

public class BeanPropertyRowMapper<T> implements RowMapper<T> {

     private Class<T> mappedClass;

     public BeanPropertyRowMapper(Class<T> mappedClass) {
        initialize(mappedClass);
    }

}

暫無
暫無

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

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