我有以下代码与spring 3.2一起使用,并在spring 4.0.0.RELEASE
上失败并出现“NoSuchBeanDefinitionException”
public interface Cacheable {
}
public class TimeUnit implements Cacheable {
}
@Component
public class UserDao<T extends Cacheable> {
public void performDBOperation() {
System.out.println("Executing db operation");
}
}
@Component
public class UserService {
@Autowired
private UserDao<TimeUnit> timeUnitUserDao;
public void someService() {
timeUnitUserDao.performDBOperation();
}
}
当我在UserDao类声明中包含T extends Cacheable时,由于泛型而失败。完整的例外是
“NoSuchBeanDefinitionException:找不到类型为[spring.generics.UserDao]的限定bean的依赖关系:期望至少有一个bean可以作为此依赖关系的autowire候选者。依赖注释:{@ org.springframework.beans.factory.annotation .Autowired(required = true),@ org.springframework.beans.factory.annotation.Qualifier(value = userdao)}“
如果宣言只是UserDao&amp; lt T&amp; gt,那么一切正常。
关于应该修复什么的任何意见/建议?
答案 0 :(得分:0)
此问题已在Spring 4.0.1中解决