Есть ли пример расширяемого приложения на базе Spring для клиентов?
Добрый день! Необходимо разработать приложение на базе Spring/Spring Boot, которое поставляется клиенту с какой-то базовой бизнес-логикой, но с возможностью сделать расширение или замену в определенных точках бизнес-логики. Соответсвенно точки это должны каким-то образом динамические настраиваться. Не могу найти пример такого приложения, возможно что-то упустил в самом Spring, а колхозить своё не хочется. Если есть ссылки на какие-то решения или вообще подход решению таких задач на Spring, поделитесь пожалуйста. Интересует только Spring или Spring Boot. Спасибо!
слишком большйо выбор как это организовать,
Вы можете как фича флаги придумать и давать фичи клиенту, с точки зрения фреймворка это просто сущность настроек, которая имеет булев флаг
Можете придумать плагины, и подключать только нужному приложению — тут вы думаете на окружением, передавая имя клиента в переменных окружения и будут подключаться нужные зависимости, можно много как — к сожалению как именно вам подходит тяжело сказать
Все варианты выглядят почти или полностью как колхозить, тк задумка колхозная :(
mayton2019, создавать точки расширения будет компания поставщик ПО, реализовывать уже конченый клиент написав какой- то код в этих точках расширения. Вроде какого-то АОП.
создавать точки расширения будет компания поставщик ПО, реализовывать уже конченый клиент написав какой- то код в этих точках расширения.
Я не вижу никакой проблемы. Т.к. Spring-приложение - это Java приложение с поддержкой ООП. И расширять
функционал - это заложено даже не в Spring а в Java.
Что там ваша компания поставщик хочет - я не понимаю. Если они - знают Java то у них не будет с этим проблем.
Заведите в приложении базовые интерфейсы для всех сущностей которые надо расширять. И просто
задокументируйте. Этого будет достаточно.
Вообще вам очень повезло в части конфигураций. Потому что Spring изначально имеет очень много путей
внесения изменений в типовую конфигурацию без модификации кода. Я-бы сказал что это его сильная сторона.
Тоесть если нужно поменять jdbc драйвер на другой тип - то это сделается меньшей кровью чем в других
фреймворках приложений.
Вроде какого-то АОП.
Здась я не согласен. АОП не заменяет собой основную логику. Он ее обогащает. И сфера
применения АОП достаточно узкая на мой взгляд. Скорее всего у вас - неудачный пример.