受弹簧数据的启发,我想创建一个抽象的RESTController,可以将其扩展到很多控制器上。我创建了以下类:

@Controller

public abstract class RESTController>

{

@Autowired

private R repository;

@RequestMapping(method=RequestMethod.GET, params={"id"})

@ResponseBody

public E getEntity(@RequestParam PK id)

{

return repository.findOne(id);

}

...

}

我希望泛型将允许我在存储库中使用@Autowired,但出现以下错误:

SEVERE: Allocate exception for servlet appServlet

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springframework.data.repository.PagingAndSortingRepository] is defined: expected single matching bean but found 3: [groupRepository, externalCourseRepository, managedCourseRepository]

at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:800)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)

at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

我知道错误告诉我,@ Autowired有多个匹配项。我很困惑,因为我认为通过创建以下控制器它会起作用:

@Controller

@RequestMapping(value="/managedCourse")

public class ManagedCourseController extends RESTController

{

...

}

通过在RESTController中使用如下方法可以轻松解决此问题:

protected abstract R getRepository();

然后在实现类中执行此操作:

@Autowired

private ManagedCourseRepository repository;

@Override

protected ManagedCourseRepository getRepository()

{

return repository;

}

我只是想知道是否有人对我如何使它起作用有任何想法。

我也发现了这个有趣的伯爵。

autowired java_Spring @Autowired为什么不能与Java泛型一起使用相关推荐

  1. 解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题

    解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题 参考文章: (1)解决非controller使用@Autowired注 ...

  2. java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客

    Java泛型 泛型类 即把不确定的数据元素类型用一个泛型占位符表示@Data public class Person { private T name; private T address; }Per ...

  3. Java泛型 通配符? extends与super

    本文来源:https://i.cnblogs.com/EditPosts.aspx?opt=1 感谢博主.本文仅供参考学习. Java 泛型 关键字说明 ? 通配符类型 <? extends T ...

  4. 泛型java博客园,Java深度历险之Java泛型

    Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在JD ...

  5. Java学习笔记(二一)——Java 泛型

    [前面的话] 最近脸好干,掉皮,需要买点化妆品了. Java泛型好好学习一下. [定义] 一.泛型的定义主要有以下两种: 在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个 ...

  6. 聊一聊Java 泛型通配符 T,E,K,V,?

    欢迎关注方志朋的博客,回复"666"获面试宝典 | 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者 ...

  7. 聊一聊Java 泛型中的通配符 T,E,K,V,?

    点击上方"方志朋",选择"设为星标" 回复"1024"获取独家整理的学习资料 作者:glmapper juejin.im/post/5d57 ...

  8. JAVA泛型的基本使用

    Java1.5版本号推出了泛型,尽管这层语法糖给开发者带来了代码复用性方面的提升,可是这只是是编译器所做的一层语法糖,在真正生成的字节码中,这类信息却被擦除了. 笔者发现非常多几年开发经验的程序猿,依 ...

  9. 用了这么多年的 Java 泛型,你对它到底有多了解?|原创

    作为一个 Java 程序员,日常编程早就离不开泛型.泛型自从 JDK1.5 引进之后,真的非常提高生产力.一个简单的泛型 T,寥寥几行代码, 就可以让我们在使用过程中动态替换成任何想要的类型,再也不用 ...

最新文章

  1. xtragrid 上移下移
  2. 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法
  3. 大脑如何编码视觉信息?动态电极到图像(DETI) 映射技术也许有助于我们揭示其原理...
  4. 为什么判断 n 是否为质数只需除到开平方根就行了?(直接证明)
  5. localStorage与sessionStorage的区别
  6. 加速你的Hibernate引擎(上)
  7. Asp.Net微信发布菜单,出现“invalid sub button url domain hint”错误
  8. 名言名人2008-11-22
  9. QNX系统上用Berkeley Packet Filter直接进行原始数据的收发
  10. 长江水位查询天气查询
  11. 微信小程序开发详细步骤是什么?
  12. 创业公司产品经理的进阶思考
  13. 【转】未连接到互联网的解决方法(chrome)
  14. Linux局域网共享打印机(实用型文档)
  15. 独家丨DeepMind科学家、AlphaTensor一作解读背后的故事与实现细节
  16. Linux环境搭建spark3 yarn模式
  17. 基因编辑相关最新研究进展(2022年12月)
  18. 《前端》ECharts 点击事件的 param参数--2021年1月7日
  19. Flink之Source
  20. MEM 数学备考学习笔记系列:

热门文章

  1. Premiere优雅炫酷的空间动态线条PR标题模板MOGRT
  2. java字符串转json数组
  3. 将图片批量切割为512*512像素
  4. 助你精通机器学习的5本免费电子书
  5. 虚拟资源项目如何操作赚钱?(1)
  6. 7-12 计算存款利息 (5 分)
  7. javascript中的数据类型
  8. JS数据类型之基本数据类型
  9. Java毕业设计合集大推送
  10. 怎么把台词截图拼接到一起?这几个方法分享给你