我可以在Spring中定义通用Bean吗?

时间:2018-11-03 15:46:32

标签: java spring spring-boot generics

我是否可以使需要其通用参数Class<T>类型作为构造函数参数的通用类在Spring中以@Bean的形式提供?

通用类:

public class Repository<T> {

    public Repository(Class<T> type) {
        //...
    }
}

我当前的@Bean定义:

@Bean
public Repository<Car> carRepository() { return new Repository<>(Car.class) }

@Bean
public Repository<Garage> carRepository() { return new Repository<>(Garage.class) }

//... one for each type I require

我想要什么:

@Bean
public <T> Repository<T> genericRepository() { return new Repository<>(T.class) }

我已经研究过Spring的ResolvableType,但似乎并不是我要的那样。有没有一种方法可以在不需要构造器参数的情况下保留T的类?春天是否为此提供了一种机制?

0 个答案:

没有答案