在春季启动从1.5.x升级到2.1.x的过程中如何解决“检测到自动配置周期”

时间:2019-06-28 07:57:15

标签: java spring-boot upgrade

我要将项目的Spring Boot从1.5.2升级到2.1.6(当前最新消息)。调整代码后,它终于可以成功构建。

但是,由于多个“检测到自动配置周期”,我无法启动应用程序。波纹管是其中的两个:
1.在org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration和
之间检测到自动配置周期 org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration
2.在org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration和org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration

之间检测到自动配置周期

关于这个关于stackoverflow的观点,我只看到了一些不受欢迎的热门问题:
Eclipse Spring Boot - AutoConfigure cycle detected between HibernateJpaAutoConfiguration and CacheAutoConfiguration

Eclipse Spring Boot - AutoConfigure cycle detected between TransactionAutoConfiguration and Neo4jDataAutoConfiguration

因此,我想知道通常应如何解决“检测到的自动配置周期”?

我尝试过的是在@SpringBootApplication批注中添加排除。这可以帮助我暂时解决该问题,但过一会儿我遇到了其他麻烦……我不确定他们是否与此排除对象相关。

例如:

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, 
        HibernateJpaAutoConfiguration.class, CacheAutoConfiguration.class})
public class InitApplication {

跳过在org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration和org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration之间检测到的自动配置周期 weeor消息。

1 个答案:

答案 0 :(得分:1)

这是Springboot和spring-data-jpa版本问题。我尝试了上述解决方案,但仍然给entityManager和TransactionManager bean创建失败。

我在Application Driver类上添加了一些注释,这些注释非常适合我。

@SpringBootApplication(exclude = { CacheAutoConfiguration.class})
@EnableAutoConfiguration