Ответ 1
Просто добавьте как bean к вашему контексту, например.
<bean class="my.package.MyClass" />
Я поддерживаю проект с двумя наборами основных пакетов, проект использует Spring и Spring MVC, один из этих пакетов содержит несколько контроллеров и сканируется с использованием конфигурации XML (<context:component-scan />
).
Проблема в том, что в другом пакете (не сканированном) есть один класс, и мне нужен этот класс для сканирования, но только этот класс и ничего больше в пакете. Теперь я не могу изменить свой пакет, так как теперь он будет слишком рискован.
Итак, есть ли способ сделать это с помощью аннотаций или XML?
Просто добавьте как bean к вашему контексту, например.
<bean class="my.package.MyClass" />
Что сказал @Bart для XML.
Если вам нужно вытянуть один класс с помощью аннотаций, добавьте следующее в один из классов @Configuration
@ComponentScan(
basePackageClasses = YourClass.class,
useDefaultFilters = false,
includeFilters = {
@ComponentScan.Filter(type = ASSIGNABLE_TYPE, value = YourClass.class)
})
Вам нужно использовать фильтры для фильтрации других классов и просто включить свой класс, который вы хотите отсканировать
<context:component-scan base-package="com.abc" >
<context:include-filter type="regex"
expression="com.abc.customer.dao.*DAO.*" />
</context:component-scan>