文档章节

bean 不加id 导致被创建多个

java9
 java9
发布于 2016/07/13 15:08
字数 412
阅读 38
收藏 0

最近在项目中使用spring session时,碰到一个问题,在tomcat7可以正常运行,但是在8不能运行。报如下错误:

 org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.data.redis.connection.RedisConnectionFactory] is defined: expected single matching bean but found 3: org.springframework.data.redis.connection.jedis.JedisConnectionFactory#0,org.springframework.data.redis.connection.jedis.JedisConnectionFactory#1,org.springframework.data.redis.connection.jedis.JedisConnectionFactory#2

因为spring-session 1.2 依赖了spring 4.2.5 (项目中使用的是3.2.2),一开始以为是版本的问题,升级后问题照旧。 spring session的配置是按照官方文档写的:

<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"/>

项目的配置文件是分多个的,然后import这个。开始怀疑是不是因为有多个配置文件的原因,就重新建了一个项目,只使用spring session,同样如下配置session(不过只有一个配置文件)。结果可以运行成功。但是不可能把所有的配置都写在一起。
想了一下,什么情况下spring 会创建多个同样类型的bean,照理说只会创建一个才对。最后在查看spring redis的文档时,发现文档中的配置加了一个 ==id== ,然后果断把两个bean都加上了id, 最后运行成功了。
造成这种错误的原因有可能是spring 在初始化bean 的时候还没有初始化完,其他的bean 依赖这个bean的时候,发现没有,然后告诉spring 我需要这个bean,spring 就又初始化这个bean一次,最后就会出现多个同种类型的bean。但是加上id后同种类型的bean id 不会重复,不会重复初始化。(仅猜想)

© 著作权归作者所有

共有 人打赏支持
java9
粉丝 12
博文 65
码字总数 25460
作品 0
武汉
后端工程师
私信 提问
Spring中bean的作用域

Bean简介: 在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与...

Robinson_lu
2015/06/17
0
0
spring bean的作用域

1、singleton:单例模式,Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。 <bean id="empServiceImpl" class="c...

liujiest
2016/05/02
151
0
bean创建过程、spring BeanFactory的实现、spring aware

Bean的创建过程: Spring beanFactory的工厂模式实现: 解析标签,存到一个Map beans中 People o = (People)factory.getBean("p"); 因为map存的是object类型,所以取出时需要强制类型转换 ...

sun_tantan
08/09
0
0
spring 事务控制

一、Spring中事务的配置(applicationContext.xml) <!-- 事务配置 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <propert......

LYQ1990
2016/04/19
8
0
spring学习——Ioc基础三(Ioc配置使用)

一、XML配置的结构 一般配置文件结构如下: <beans> <import resource=”resource1.xml”/> <bean id=”bean1”class=””></bean> <bean id=”bean2”class=””></bean> <bean name=”bea......

小风89
2015/10/11
652
0

没有更多内容

加载失败,请刷新页面

加载更多

easyui tree

<tr> <th><spring:message code="wf.borrow.examiner"/></th> <td> <input id="inp-examiner1" type="text" name="examiner1" style="width:197px;height:20px;" data-options="required:tru......

小兵胖胖
4分钟前
0
0
内存性能的正确解读

一台服务器,不管是物理机还是虚拟机,必不可少的就是内存,内存的性能又是如何来衡量呢。 1. 内存与缓存 现在比较新的CPU一般都有三级缓存,L1 Cache(32KB-256KB),L2 Cache(128KB-2MB)...

阿里云云栖社区
7分钟前
0
0
微服务架构:Zuul 1.0 和 2.0 我们该如何选择?

在今年5月中,Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本,真可谓千呼万唤始出来。从Netflix的官方博文[附录1]中,我们获得的信息也比较令人振奋: The Cloud Gateway team a...

大木老师故事的小黄花
7分钟前
0
0
基础掌握

哪些是基础功呢?我觉得包括: 数据结构和算法:链表、队列、栈、堆、树(RBT, B/B+)、跳表、哈希、图;查找(二分、bst)、排序(冒泡、插入、快排、归并、堆排、希尔)、递归、归并、回溯、...

边鹏_尛爺鑫
8分钟前
0
0
Android APP的安装路径

一. Android应用安装路径有两种情况: system/app 系统自带的应用程序,无法删除。root后可以删除,注意可能造成系统崩溃,不过有的垃圾捆绑软件只能这么删除了 data/app 用户程序安装的目录,...

天王盖地虎626
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部