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 🙂