Итак, у меня есть ряд дженериков в Spring 3.2, и в идеале моя архитектура будет выглядеть примерно так.
class GenericDao<T>{}
class GenericService<T, T_DAO extends GenericDao<T>>
{
// FAILS
@Autowired
T_DAO;
}
@Component
class Foo{}
@Repository
class FooDao extends GenericDao<Foo>{}
@Service
FooService extends GenericService<Foo, FooDao>{}
К сожалению, при использовании нескольких реализаций генериков автоувеличивание вызывает ошибку в отношении множественных сопоставлений bean. Я предполагаю, что это связано с тем, что @Autowired
обрабатывает до стирания типа. Каждое решение, которое я нашел или придумал, выглядит уродливо для меня или просто необъяснимо отказывается работать. Каков наилучший способ решения этой проблемы?