java 当前正在创建请求的Bean:在将一个 Spring Boot 应用程序添加到另一个应用程序的过程中,是否存在无法解析的循环引用?

pxq42qpu  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(96)

场景:我有一个springboot应用程序,它执行类似批处理的功能(从s3处理中读取数据并写入sql表)。
我也有一个单独的jmix应用程序。所以在需要添加批处理到这个jmix应用程序,以便我可以运行批处理从jmix应用程序
我可以将其添加到buid.gradle中,并在jmix应用程序的主类中完成如下操作

@SpringBootApplication(scanBasePackages = {"com.publicismedia.uniquebatchjava"})
@EnableJmixDataRepositories(basePackages = {})
@EnableJpaRepositories(basePackages = {"com.publicismedia.uniquebatchjava.repository"})

因此,我们可以在Jmix应用程序(scanBasePackages = {"com.publicismedia.uniquebatchjava"})中使用Bean。Jmix尝试为所有存储库类创建Bean,无论它位于主应用程序还是依赖关系应用程序上。因此,我添加此@EnableJmixDataRepositories(basePackages = {})是为了避免jmix不扫描任何内容,而添加@EnableJpaRepositories(basePackages = {"com.publicismedia.uniquebatchjava.repository"})是为了允许jpa扫描依赖关系应用程序
现在的错误是
原因:org. springframework. beans.工厂.不满足的依赖项异常:创建名为"OAuth2AuthorizationServerConfiguration"的Bean时出错:通过字段"tokenStore"表达的依赖关系未满足;嵌套的异常是org. springframework. beans. factory.不满足的依赖异常:创建在类路径资源[io/jmix/autoconfigure/securityoauth2/securityoauth2AutoConfiguration$JdbcTokenStoreConfiguration.class]中定义的名为"sec_TokenStore"的Bean时出错:通过方法"tokenStore"参数0表达的依赖项未满足;嵌套的异常是org. springframework. beans. factory.不满足的依赖异常:创建名为"stellantisroiApplication"的Bean时出错:通过字段"batchExecuter"表示的依赖关系未满足;嵌套的异常是org. springframework. beans. factory.不满足的依赖异常:创建名为"batchExecuter"的Bean时出错:通过字段"batchConfigRepository"表示的依赖关系未满足;嵌套的异常是org. springframework. bean.工厂。创建在com. publicismedia. uniquebatchjava. repository中定义的名为"batchConfigRepository"的Bean时出错。在StellantisroiApplication上声明的@EnableJpaRepositories中定义了"batchConfigRepository":在设置bean属性"实体管理器"时,无法创建类型为[org. springframework. orm. jpa. SharedEntityManagerCreator]的内部bean "(内部bean)#51e0629a";嵌套的异常是org. springframework. bean.工厂。创建名为"(内部Bean)#51e0629a"的Bean时出错:设置构造函数参数时无法解析对Bean "entityManagerFactory"的引用;嵌套的异常是org. springframework. beans. factory.不满足的依赖异常:创建在类路径资源[io/jmix/autoconfigure/data/JmixLiquibaseAutoConfiguration.class]中定义的名为'jmix_Liquibase'的Bean时出错:通过方法"liquibase"参数0表示的不满足的相关性;嵌套的异常是org. springframework. beans. factory.创建名为"dataSource"的Bean时出错:当前正在创建请求的Bean:是否存在无法解析的循环引用?
是否有人有任何解决方案或简单地如何添加一个 Spring 启动maven应用程序到其他 Spring 启动maven应用程序考虑com.package1.*是主应用程序和com.package2.*作为依赖应用程序

3htmauhk

3htmauhk1#

首先,请修改标题,因为它说的东西不同,包括stacktrace。请阅读
当前正在创建请求的Bean:是否存在无法解析的循环引用?
这意味着你有一个bean "A"依赖于另一个bean "B",但是"B"依赖于"A",这就是循环引用的原因。当然这个循环可以更长,例如:您必须遵循良好的设计原则,并以某种方式消除这种循环,或者您可以在字段上使用@Lazy注解,以便稍后启动bean(默认情况下,它是急切依赖)。

相关问题