今天在baseService<T> 中注入了baseDao<T>
public abstract class BaseService { @Resource private BaseDao baseDao ; .................................. }
然后一运行出错
Error creating bean with name 'userService':
Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'baseDao': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not an managed type: class java.lang.Object
记得前几天在spring中配置 domainClassConveter的时候也是这个错误 ,当时弄了半天没弄出来 ,直接注掉了...羞愧
这次又查了下资料 ,发现是泛型的问题,
在baseDao用Resource注入后,在具体实现时(比如用ioc得到userService时),没提供具体的T类型 ,而spring注入baseDao<T> - 即baseDao<Object>会发生错误(具体原因不甚明确)
解决方案是 :