스프링부트 순환참조
1. 문제
- 컴포넌트 클래스에서 HandlerExceptionResolver 를 생성자로 주입받게 되면 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration 와 순환 참조가 일어난다.
- 순환참조떄문에 NoSuchBeanDefinitionException 발생한다.
2. 원인
- 익셉션이 발생되는 것으로 추측되는 스프링 코드이다.
public class WebMvcAutoConfiguration { ... @Override protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer( FormattingConversionService mvcConversionService, Validator mvcValidator) { try { return this.beanFactory.getBean(ConfigurableWebBindingInitializer.class); } catch (NoSuchBeanDefinitionException ex) { return super.getConfigurableWebBindingInitializer(mvcConversionService, mvcValidator); } } }
3. 해결
- HandlerExceptionResolver 를 생성자로 주입받지 않고 @Autowired 로 주입받아 해결하였다.
Comments