• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

19.11.09 22:13 작성 조회수 600

0

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으로 빈을 등록해도 문제가 없을까요?

답변 2

·

답변을 작성해보세요.

2

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

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

0

홍은모님의 프로필

홍은모

질문자

2019.11.10

감사합니다!