для реализации модульного подхода (от 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-компонентов в контексте приложения сейчас, не вызывая конфликтов