整合Spring Session与Hazelcast时自动注入HazelcastInstance失败求助
解决Spring Session与Hazelcast整合时的BeanCreationException问题
问题根源
你遇到的org.springframework.beans.factory.BeanCreationException本质是版本兼容性冲突:
- Spring Session 2.0.x系列要求依赖Spring Framework 5.0及以上版本,但你当前使用的是Spring 4.3.3,而
ObjectProvider是Spring 5才新增的核心类型,这直接导致Spring容器无法找到对应的Bean来完成HazelcastHttpSessionConfiguration的依赖注入。
解决方案
你有两种可行的修复方向:
方案1:降级Spring Session到兼容Spring 4.3的版本
Spring Session 1.3.x系列是专门为Spring Framework 4.3.x量身打造的稳定分支,建议将Spring Session版本修改为1.3.5.RELEASE,重新构建项目后即可解决依赖缺失问题。
方案2:升级Spring Framework到5.x版本
如果你的项目架构允许升级Spring版本,建议将Spring Framework升级到5.0.x及以上(比如5.0.13.RELEASE,和Spring Session 2.0.2匹配度最佳),这样就能原生支持ObjectProvider的注入需求。
额外配置验证
确认你的配置没有其他潜在问题:
- 你的
SessionConfig配置类写法完全符合官方规范,@EnableHazelcastHttpSession注解和HazelcastInstanceBean的定义逻辑正确。 - 确保
appContext.xml中的<context:annotation-config/>已经配合包扫描生效,建议补充<context:component-scan base-package="你的配置类所在包路径"/>,保证Spring能扫描到SessionConfig类。
内容的提问来源于stack exchange,提问作者Ahmed M Farghali
相关产品推荐
相关产品推荐

