2014-01-17 5 views
1

У меня есть MySimpleController, и мне нужно извлечь этот контроллер в общую библиотеку.Регистрация весенних бобах без сканирования компонентов

package xxx.mypackage; 

@Controller 
class MySimpleController{} 

Эта библиотека имеет другое название пакета, yyy.newpackage, которая отличается от предыдущей xxx.mypackage. Из-за этого он не подходит для сканирования компонентов.

Возникает вопрос: есть ли способ зарегистрировать этот контроллер без сканирования компонентов? Я просто хочу включить свою банку и правильно подождать моего контроллера. Я видел некоторые определения в папке META-INF, но не мог быть уверен, что это правильный путь.

ответ

0

добавьте этот контроллер в качестве компонента с новым пакетом в свой прикладной текст. Таким образом, это будет единственный bean-компонент, загружаемый через xml-конфигурацию, тогда как все остальное - через проверку компонентов.

<beans> 
    <bean name="myBean" class="yy.MySimpleController"/> 
</beans> 
+0

Это требует изменений в моей конфигурации пользователей. Я хочу, чтобы моя банка была включена, и она будет работать без какой-либо ручной регистрации. – Cemo

+0

Ну, если вы перемещаете это как файл jar, кто-нибудь собирается использовать этот файл jar в качестве зависимости? Если это так, разве они не будут использовать ваш MySimpleController в качестве зависимости в коде? – Hrishikesh

+0

Да, он будет использоваться как зависимость. MySimpleController - полностью функциональный код, другие части не взаимодействуют с этим контроллером. Рассматривайте его как контроллер, предоставляющий некоторую системную информацию. – Cemo

1

Создание конфигурации для всей третьей партии библиотеки

@Configuration 
public class CustomConfig { 

    @Bean 
    public MySimpleController mySimpleController(){ 
     return new MySimpleController(); 
    } 
} 

и импортировать эту конфигурацию без сканирования

@Import(CustomConfig.class) 

Мой образец находится в JavaConfig, но это относится к конфигурации XML тоже.

+0

Я хочу импортировать автоматически. – Cemo

+1

Замечательный. это лучшее решение – Hrishikesh

+0

@Cemo автоматически без сканирования? :) – MariuszS

Смежные вопросы