Добрый день.
Нужно сделать модульное приложение на Spring framework, т.е. есть приложение Spring-Boot, и есть например модули в виде jar файлов в директории сервера(например modules). При запуске приложения нужно забрать все jar файлы и импортировать их в приложение в виде компонентов(плагинов) которые будут расширять функциональность приложения.
Первым делом я сделал загрузку jar файлов используя java.net.URLClassLoader, но работать с классами я могу только через рефлексию, что не подходит так как я использую аннотация вместо xml файлов, а через рефлексию аннотации не работают.
Получается что в модулях я даже не могу внедрять зависимости например:
@PersistenceContext
private EntityManager em;
Я наткнулся на osgi framework но при его использовании нужно отказаться от использования Spring-Boot, плюс ко всему говорят, что там не работают все аннотации и придётся использовать xml, что не хотелось бы. Мы наоборот хотим избавится от всех xml файлов и сделать проект на аннотациях и java классах.
И что ещё пугает osgi так это его монструозность и заморочки в зависимости для которых придётся делать свои bundle это ещё куча потраченного времени и уверен что без проблем не обойдётся и плюс время на изучение.
Пример проекта на github:
https://github.com/Stanyslav/spring-boot-multiple-...