💰 포인트 기능 오픈 💰

@EnableWebMvc 와 @Configuration을 동시에 쓸 때 테스트에서 에러가납니다

해결됨
홍은모 프로필

RootConfig과 ServletConfig으로 계층형 컨텍스트를 구성하고있습니다( 레거시 프로젝트입니다 )

ServletConfig에 @EnableWebMvc와 @Configuration을 주고 테스트를 돌려보면 No ServletContext set 이라는 익셉션이 발생합니다 (실제 웹에서는 잘 동작됩니다)

근데 @Configuration을 제거하고, @EnableWebMvc만을 적용하면 테스트가 잘 통과됩니다.

제 생각으로는

ServletConfig에 달아준 @EnableWebMvc가 @Import 하고있는 DelegatingWebMvcConfiguration이 @Configuration을 달고 기본적인 셋팅이 되어있는데,

여기서 제가 ServletConfig에 @Configuration을 주니까DelegatingWebMvcConfiguration의 기본세팅이 무시되서 그런걸까요?

또 이렇게 ServletConfig -> @EnableWebMvc -> @Import(DelegatingWebMvcConfiguration) -> DelegatingWebMvcConfiguration -> @Configuration

몇 번의 단계를 거쳐야 @Configuration 이 있는데요, ServletConfig에 @Bean으로 빈을 등록해도 문제가 없을까요?

백기선 프로필
백기선 3달 전

코드를 봐야 정확히 알 수 있겠지만 둘 다 있을 때 실패한 이유는 아마도 ApplicationContext에 ServletContext를 설정하지 않았기 때문에 발생했을걸로 생각하는데.. 수업 영상에서는 9분 10초 정도에 저도 같은 문제를 해결하고 있으니 참고하세요.

ServletConfig에 @Configuration을 쓰지 않는 이상 거기에 @Bean을 등록하진 못합니다. 빈 설정이 아니니까요. 

홍은모 프로필
홍은모 3달 전

감사합니다!

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스