Добавление плагинов в контекст приложения весной - PullRequest
0 голосов
/ 29 мая 2018

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

twoсначала нужно сделать что-то: сканирование всех классов в 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 Ответ

0 голосов
/ 06 июня 2018

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

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

...