반응형
컨텍스트에서 여러 패키지 : 컴포넌트 스캔, 스프링 구성
context:component-scan
요소의 spring-servlet.xml 파일에 여러 패키지를 어떻게 추가 할 수 있습니까?
나는 시도했다
<context:component-scan base-package="z.y.z.service" base-package="x.y.z.controller" />
과
<context:component-scan base-package="x.y.z.service, x.y.z.controller" />
과
<context:component-scan base-package="x.y.z.service" />
<context:component-scan base-package="x.y.z.controller" />
그러나 오류가 발생했습니다 :
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [x.y.z.dao.daoservice.LoginDAO] found for dependency:
다음과 같은 접근법이 맞습니다.
<context:component-scan base-package="x.y.z.service, x.y.z.controller" />
x.y.z.dao.daoservice.LoginDAO
위에 언급 된 패키지에없는에 대한 오류가 표시 됩니다. 추가하지 않은 것 같습니다.
<context:component-scan base-package="x.y.z.service, x.y.z.controller, x.y.z.dao" />
주석 접근법
@ComponentScan({ "x.y.z", "x.y.z.dao" })
여러 기본 패키지를 추가 할 수 있지만 ( axtavt의 답변 참조 ) 기본 패키지 내 에서 스캔 한 내용 을 필터링 할 수도 있습니다 .
<context:component-scan base-package="x.y.z">
<context:include-filter type="regex" expression="(service|controller)\..*"/>
</context:component-scan>
<context:component-scan base-package="x.y.z"/>
나머지 패키지는 "xyz"의 하위 패키지이므로 작동합니다. 따라서 각 패키지를 개별적으로 언급 할 필요가 없습니다.
또 다른 일반적인 주석 접근법 :
@ComponentScan(basePackages = {"x.y.z"})
xyz가 일반적인 패키지이면 다음을 사용할 수 있습니다.
<context:component-scan base-package="x.y.z.*">
xyz로 시작되는 모든 패키지가 포함됩니다 : xyzcontroller, xyzservice 등
예를 들어 "com.abc"패키지가 있고 그 안에 여러 개의 패키지가 있습니다.
@ComponentScan("com.abc")
참고 URL : https://stackoverflow.com/questions/5269450/multiple-packages-in-contextcomponent-scan-spring-config
반응형
'Programming' 카테고리의 다른 글
ab 부하 테스트 (0) | 2020.05.20 |
---|---|
“Microsoft Advertising SDK”Visual Studio 확장을 제거하는 방법은 무엇입니까? (0) | 2020.05.20 |
CentOS 64 비트 잘못된 ELF 인터프리터 (0) | 2020.05.20 |
DLL 'SQLite.Interop.dll'을로드 할 수 없습니다 (0) | 2020.05.20 |
MySQL : 쿼리 결과에서 사용자 변수 설정 (0) | 2020.05.20 |