Code Bye

spring根据基类中的泛型参数给属性注入值的问题

基类如下
@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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明spring根据基类中的泛型参数给属性注入值的问题