springboot从2.3.9升级到2.6.3后遇到错误

Yas*_*h B 14 java spring upgrade spring-boot

从 springboot 2.3.9 升级到 2.6.6 后,我的测试失败并出现以下错误,

java.lang.AssertionError: 
Expecting:
 <Unstarted application context org.springframework.boot.test.context.assertj.AssertableApplicationContext[startupFailure=org.springframework.beans.factory.UnsatisfiedDependencyException]>
to have a single bean of type:
 <com.air.dx.range.application.RangeApplicationService>:
but context failed to start:
 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'IRoRangeRepository': Unsatisfied dependency expressed through method 'setDialect' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.relational.core.dialect.Dialect' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
    
Run Code Online (Sandbox Code Playgroud)

升级后的一项观察,

spring-boot-test jar 中的ConfigFileApplicationContextInitializer类被修改为ConfigDataApplicationContextInitializer

Mik*_*048 1

是的,这是一个法律假设,事实也是如此。实际上,在 spring-boot 2.4.0 中,ConfigFileApplicationContextInitializer 已经被标记为 deprecated,取而代之的是ConfigDataApplicationContextInitializer。请注意,ConfigFileApplicationContextInitializer从 3.0.0 开始,它不再存在于 spring-boot 中。
所以你可以切换到ConfigDataApplicationContextInitializer这应该足够了。