복붙노트

[SPRING] 하나의 클래스 만 사용하여 @ComponentScan 또는 <context : component-scan /> 사용

SPRING

하나의 클래스 만 사용하여 @ComponentScan 또는 사용

두 개의 주요 패키지가있는 프로젝트를 유지 관리하고 있으며 프로젝트는 Spring 및 Spring MVC를 사용하고 있으며이 패키지 중 하나에는 여러 컨트롤러가 포함되어 있으며 XML 구성 ()을 사용하여 스캔됩니다.

문제는 다른 패키지 (스캔되지 않음)에 하나의 클래스가 있고이 클래스를 스캔해야하지만이 클래스와 패키지의 다른 클래스 만 필요하다는 것입니다. 지금은 너무 위험 할 수 있기 때문에 지금은 패키지를 변경할 수 없습니다.

그래서 주석이나 XML을 사용하여 이것을 수행하는 방법이 있습니까?

해결법

  1. ==============================

    1.예를 들어 컨텍스트에 bean으로 추가하면됩니다.

    예를 들어 컨텍스트에 bean으로 추가하면됩니다.

    <bean class="my.package.MyClass" />
    
  2. ==============================

    2.@Bart가 XML을 위해 말한 것.

    @Bart가 XML을 위해 말한 것.

    어노테이션을 사용하여 해당 클래스를 가져와야하는 경우 @Configuration 클래스 중 하나에 다음을 추가하십시오

    @ComponentScan(
        basePackageClasses = YourClass.class, 
        useDefaultFilters = false,
        includeFilters = {
            @ComponentScan.Filter(type = ASSIGNABLE_TYPE, value = YourClass.class)
        })
    
  3. ==============================

    3.필터를 사용하여 다른 클래스를 필터링하고 스캔하려는 클래스를 포함시켜야합니다.

    필터를 사용하여 다른 클래스를 필터링하고 스캔하려는 클래스를 포함시켜야합니다.

    <context:component-scan base-package="com.abc" >
    
        <context:include-filter type="regex" 
                       expression="com.abc.customer.dao.*DAO.*" /> 
    
    </context:component-scan>
    
  4. from https://stackoverflow.com/questions/21022117/using-componentscan-or-contextcomponent-scan-with-only-one-class by cc-by-sa and MIT license