Насколько я понимаю, с весны 4 года и далее универсальный тип может служить действительным классификатором.Это прекрасно работает в следующем (базовом) примере:
public interface TypeResolver<T>{
Class<T> type();
}
@Configuration
public TypeResolversConfig{
@Bean
public TypeResolver<Integer> integerTypeResolver(){
return () -> Integer.class
}
@Bean
public TypeResolver<String> stringTypeResolver(){
return () -> String.class
}
}
@Service
public class SomeService{
@Autowired
private TypeResolver<Integer> integerTypeResolver;
}
Однако, если я добавлю еще один компонент:
@Service
public class SomeOtherService<T>{
@Autowired
private TypeResolver<T> tTypeResolver;
}
, а затем приступим к редактированиюSomeService
следующим образом:
@Service
public class SomeService{
@Autowired
private SomeOtherService<Integer> someOtherService;
}
Я получаю
Поле tTypeResolver в com.example.demo.SomeOtherService требуется один компонент, но найдено 2
исключение.Есть ли способ обойти это, или это просто внутреннее ограничение, при котором пружина может обойти стирание типа только в ограниченной степени?Я использую весеннюю загрузку 2.1.8. ВЫПУСК.