Добавление плагинов в контекст приложения весной

Для реализации модульного подхода (от simillar к oSGI) я использую инфраструктуру плагинов Spring ( https://github.com/spring-projects/spring-plugin), я предоставил конкретный интерфейс в качестве точки расширения, которая будет реализована в моих реализациях плагинов. воплощать в жизнь

Сначала нужно сделать две вещи: сканирование всех классов в classpath и выборку реализаций, которые реализуют этот интерфейс (точку расширения)

второе: добавление этих бинов реализации в контекст приложения

первая часть может быть достигнута, так как весенний плагин предоставляет PluginRegistry, который ищет всю реализацию для данного типа плагина

registry.getPluginFor(ProductType.SOFTWARE);
// Returns the first plugin supporting SOFTWARE, or DefaultPlugin if none found
registry.getPluginFor(ProductType.SOFTWARE, new DefaultPlugin());
// Returns all plugins supporting HARDWARE, throwing the given exception if none found
registry.getPluginsFor(ProductType.HARDWARE, new MyException("Damn!");

вторая часть: как мне теперь зарегистрировать этот список bean-компонентов в контексте приложения, не вызывая конфликтов

1 ответ

Решение

Возможно, вы захотите взглянуть на это. Возможно, лучше предоставить специальный интерфейс для ваших точек расширения, а затем разрешить плагинам их реализовывать. В этой статье я опишу способ достижения этого с помощью аннотаций и Spring

https://devnotesblog.wordpress.com/2011/03/20/adding-plug-ins-to-your-application-with-spring/

Другие вопросы по тегам