Компоненты Spring Filter в автоматическом сканировании

Компоненты Spring Filter в автоматическом сканировании

В этомSpring auto component scanning tutorial вы узнаете, как заставить Spring автоматически сканировать ваши компоненты. В этой статье мы покажем вам, как сделать компонентный фильтр в процессе автоматического сканирования.

1. Компонент фильтра - включает

См. Следующий пример, чтобы использовать Spring «filtering» для сканирования и регистрации имени компонентов, которые соответствуют определенному «регулярному выражению», даже если класс не аннотирован с помощью @Component.

Слой DAO

package com.example.customer.dao;

public class CustomerDAO
{
    @Override
    public String toString() {
        return "Hello , This is CustomerDAO";
    }
}

Сервисный уровень

package com.example.customer.services;

import org.springframework.beans.factory.annotation.Autowired;
import com.example.customer.dao.CustomerDAO;

public class CustomerService
{
    @Autowired
    CustomerDAO customerDAO;

    @Override
    public String toString() {
        return "CustomerService [customerDAO=" + customerDAO + "]";
    }

}

Весенняя фильтрация.



    

        

        

    

Запустить его

package com.example.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.example.customer.services.CustomerService;

public class App
{
    public static void main( String[] args )
    {
        ApplicationContext context =
        new ClassPathXmlApplicationContext(new String[] {"Spring-AutoScan.xml"});

        CustomerService cust = (CustomerService)context.getBean("customerService");
        System.out.println(cust);

    }
}

Выход

CustomerService [customerDAO=Hello , This is CustomerDAO]

В этой фильтрации XML все имена файлов содержат DAO или слово Service (DAO.,Services.), которое будет обнаружено и зарегистрировано в контейнере Spring.

2. Компонент фильтра - исключить

С другой стороны, вы также можете исключить указанные компоненты, чтобы Spring не мог обнаружить и зарегистрировать его в контейнере Spring.

Исключите эти файлы, аннотированные @Service.

    
        
    

Исключить эти файлы имя содержит слово DAO.

    
        
    

Скачать исходный код