Here we will see how to fix BeanDefinitionOverrideException.
How to fix BeanDefinitionOverrideException:
Problem:
You may get the BeanDefinitionOverrideException
exception while running the test cases, when you update the spring boot
version from 2.1.x to 2.2.x
.
Here are the sample error logs while building the application.
Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:123)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:43)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
Solution:
Add the below property in your test application.properties file.
spring.main.allow-bean-definition-overriding=true
That’s it, rebuild the application.
References:
Happy Learning 🙂