스프링4.x와 jpa, encache를 설정해서 사용. 멀티모듈프로젝트로 포팅하면서 문제가 발생했다.
JavaConfig.java를 복붙하는 과정에서 오류가 있었나 해서 여기저기 찾아봤는데 역시 없었고 빈 생성타임을 의심하고 찾아서 문제점을 발견했다.
component-scan이 JavaConfig.java 설정파일을 두번 읽으면서 빈을 두번생성하고~ 캐시가 두번 생성되면서 발생하는 문제…
servlet에서 스캔을 없애버리거나… servlet이 담당하는 부분만을 스캔하게 만든다. Controller, 또는 Service까지…
root에서는 기타 등등 의존성을 미리 생성해야 하니 이쪽에서 대부분의 스캔을 맡겨놓는다.설정은 다음과 같다.
문제상황
1 2 3 4 5 |
root-context.xml <context:component-scan base-package="org.beansugar"> servlet-context.xml <context:component-scan base-package="org.beansugar"> |
해결방법
1 2 3 4 5 6 7 8 9 10 |
root-context.xml <context:component-scan base-package="org.beansugar"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> servlet-context.xml <context:component-scan base-package="org.beansugar" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> |