java - 如何在 spring-boot 中为泛型类提供类类型?

标签 java spring generics 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> 来克服它构造函数参数,如下所示:

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

     private Class<T> mappedClass;

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

}

关于java - 如何在 spring-boot 中为泛型类提供类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25745917/

相关文章:

java - Spring boot & hibernate validator 版本

java - 在 HashMap 中使用嵌套泛型类型

java - 这个java程序有错误吗?

java - ORA-02292 : integrity constraint violated - child record found - fetchType issue?

java - 使用Kafka翻滚窗口查询时返回空数据

java - 为什么 JAVA 中会忽略 ASCII SUB (\u001a)?

Java 泛型,支持 "Specialization"?与 C++ 模板的概念相似性?

Java - 打开txt文件并清除所有多个空格

Spring Boot 应用程序可以处理大量请求

java - Spring Data JPA 和事务管理