当一个接口有多个不同实现类时,使用注解@Autowired时会报 org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [xxxx] is defined ...
在spring 中使用注解,常使用 Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 Primary 的作用就出来了。下面是个简单的使用例子。有如下一个接口: 有下面的两个实现类: 注入: I am singing with DIO voice: song lyrics. 原因很简单,就是 Opera ...
2020-03-04 17:05 0 3364 推荐指数:
当一个接口有多个不同实现类时,使用注解@Autowired时会报 org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [xxxx] is defined ...
当一个接口有两个实现类时,并两个实现类都被 Spring 管理,则需要对某个类进行 @Primary 注解,表示优先选择此实现类。 否则会抛出 异常 org.springframework.beans.factory.NoUniqueBeanDefinitionException ...
@Primary 注解 刚看到这个,还以为是持久层的注解呢,以为和@Id差不多,一查才知道,这两个风马牛不相及,反倒和@Qualifier以及@Resource有点像了,但是相比而言,后面两个更加的灵活。 可以看这两个博客【博客一】【博客二】 我觉得 ...
Qualifier注解,选择一个对象的名称,通常比较常用 3. 方案2-@Primary Primary可 ...
当一个接口存在多个实现的时候会报org.springframework.beans.factory.NoUniqueBeanDefinitionException类似的异常信息,项目中碰到引用别人事先写好的框架,但是对于其中个别实现并不是很需要,因此可以通过使用@Primary注解进行处理 ...
简单的说,就是当Spring容器扫描到某个接口的多个 bean 时,如果某个bean上加了@Primary 注解 ,则这个bean会被优先选用,如下面的例子: 因为 HibernateFooRepository 上面有注解@Primary,所以它将优先 ...
@Primary:在众多相同的Bean中,优先使用@Primary注解的Bean。 这个和@Qualifier有点区别,@Qualifier指的是使用哪个Bean进行注入。 参考: http://blog.csdn.net/asdfsadfasdfsa/article/details ...
在Controller中需要注入service那么我的这个server有两个实现类如何区分开这两个impl呢 根据注入资源的注解不同实现的方式有一点小小的区别 在Controller中使用 @Autowired注入时 Qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是 ...