Могу ли я определить общие бобы весной? - PullRequest
0 голосов
/ 03 ноября 2018

Могу ли я сделать универсальный класс, который требует тип его универсального параметра Class<T> в качестве аргумента конструктора, доступного как @Bean в Spring?

Общий класс:

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 101 ResolvableType, но, похоже, это не то, что я ищу. Есть ли способ получить класс T, не требуя аргумента конструктора? Есть ли у пружины механизм для этого?

...