基类如下
@Transactional(readOnly = true) public abstract class CrudService<D extends CrudDao<T>, T extends DataEntity<T>> { /** * 持久层对象 */ @Autowired protected D dao; }
现有如下类;
@Service @Transactional(readOnly = true) public class ArticleService extends CrudService<ArticleDao, Article> { }
本人疑惑的是spring启动的时候能为这个ArticleService注入dao属性,也就是ArticleDao的值,按理说泛型会编译后擦除,而@Autowired根据类型注入dao属性,而通过反射获取到的dao的类型是CrudDao,无法判断具体类型, 而spring框架为什么可以那么准确的注入 dao属性呢?
解决方案
50
不懂,纯帮顶;
50
不懂java