autowired java_Spring @Autowired为什么不能与Java泛型一起使用
受弹簧数据的启发,我想创建一个抽象的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泛型一起使用相关推荐
- 解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题
解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题 参考文章: (1)解决非controller使用@Autowired注 ...
- java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客
Java泛型 泛型类 即把不确定的数据元素类型用一个泛型占位符表示@Data public class Person { private T name; private T address; }Per ...
- Java泛型 通配符? extends与super
本文来源:https://i.cnblogs.com/EditPosts.aspx?opt=1 感谢博主.本文仅供参考学习. Java 泛型 关键字说明 ? 通配符类型 <? extends T ...
- 泛型java博客园,Java深度历险之Java泛型
Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在JD ...
- Java学习笔记(二一)——Java 泛型
[前面的话] 最近脸好干,掉皮,需要买点化妆品了. Java泛型好好学习一下. [定义] 一.泛型的定义主要有以下两种: 在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个 ...
- 聊一聊Java 泛型通配符 T,E,K,V,?
欢迎关注方志朋的博客,回复"666"获面试宝典 | 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者 ...
- 聊一聊Java 泛型中的通配符 T,E,K,V,?
点击上方"方志朋",选择"设为星标" 回复"1024"获取独家整理的学习资料 作者:glmapper juejin.im/post/5d57 ...
- JAVA泛型的基本使用
Java1.5版本号推出了泛型,尽管这层语法糖给开发者带来了代码复用性方面的提升,可是这只是是编译器所做的一层语法糖,在真正生成的字节码中,这类信息却被擦除了. 笔者发现非常多几年开发经验的程序猿,依 ...
- 用了这么多年的 Java 泛型,你对它到底有多了解?|原创
作为一个 Java 程序员,日常编程早就离不开泛型.泛型自从 JDK1.5 引进之后,真的非常提高生产力.一个简单的泛型 T,寥寥几行代码, 就可以让我们在使用过程中动态替换成任何想要的类型,再也不用 ...
最新文章
- xtragrid 上移下移
- 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法
- 大脑如何编码视觉信息?动态电极到图像(DETI) 映射技术也许有助于我们揭示其原理...
- 为什么判断 n 是否为质数只需除到开平方根就行了?(直接证明)
- localStorage与sessionStorage的区别
- 加速你的Hibernate引擎(上)
- Asp.Net微信发布菜单,出现“invalid sub button url domain hint”错误
- 名言名人2008-11-22
- QNX系统上用Berkeley Packet Filter直接进行原始数据的收发
- 长江水位查询天气查询
- 微信小程序开发详细步骤是什么?
- 创业公司产品经理的进阶思考
- 【转】未连接到互联网的解决方法(chrome)
- Linux局域网共享打印机(实用型文档)
- 独家丨DeepMind科学家、AlphaTensor一作解读背后的故事与实现细节
- Linux环境搭建spark3 yarn模式
- 基因编辑相关最新研究进展(2022年12月)
- 《前端》ECharts 点击事件的 param参数--2021年1月7日
- Flink之Source
- MEM 数学备考学习笔记系列: