2020年12月24日星期四

BeanCurrentlyInCreationException sqlSessionFactory Requested bean is currently in creation: Is there an unresolvable circular reference?

Springboot项目集成h2 databse遇到的异常

 

1.异常现象

Springboot集成h2 database,h2配置如下

spring.datasource.driver-class-name=org.h2.Driverspring.datasource.url=jdbc:h2:~/testspring.datasource.username=saspring.datasource.password=saspring.datasource.schema=classpath:db/*.sqlspring.datasource.initialization-mode=alwaysspring.datasource.continue-on-error=falsespring.h2.console.path=/h2-consolespring.h2.console.enabled=true

当spring.datasource.schema配置脚本时,就会抛出异常,具体异常信息为:

Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'sqlSessionFactory': Requested bean is currently in creation: Is there an unresolvable circular reference?

如果不配置spring.datasource.schema的值,也就不会初始化数据库脚本,也不会抛异常。

 

2.问题解决

由于能力不足,在网上导出搜索,搜索了整整一天终于解决了。这个异常的原因看名字就能大致猜出来:Bean对象当前正在创建异常。

由于公司用的RPC框架的注解的类都有这个异常抛出,普通@Service类都可以正常注入Bean。所以可以断定是公司RPC框架注解的问题,不能在Bean完全创建好后再注入导致的问题。

解决办法就是在注入的属性上添加@Lazy注解,表示暂时不注入对象,等到调用该属性(接口)时再注入Bean。类似下方代码

@公司RPC@Servicepublic class UserService{ @Lazy @Autowired private UserMapper userMapper; public User getById(String id){   return userMapper.getById(id); }}  

 









原文转载:http://www.shaoqun.com/a/503914.html

跨境电商:https://www.ikjzd.com/

cb体系:https://www.ikjzd.com/w/2063

欧苏丹:https://www.ikjzd.com/w/1756


Springboot项目集成h2databse遇到的异常1.异常现象Springboot集成h2database,h2配置如下spring.datasource.driver-class-name=org.h2.Driverspring.datasource.url=jdbc:h2:~/testspring.datasource.username=saspring.datasource.passw
韩国naver:韩国naver
吴佳:吴佳
亚马逊卖家销量不好的7大原因,你占了哪条?:亚马逊卖家销量不好的7大原因,你占了哪条?
清远清泉湾里面有什么好吃的呢?:清远清泉湾里面有什么好吃的呢?
泰迪熊兵马俑,你见过吗? - :泰迪熊兵马俑,你见过吗? -

没有评论:

发表评论