У меня есть прецедент, где я хотел бы предложить простой API для расширения функциональности моего приложения scala.DI или Service Locator: внедренные реализации во время выполнения (без статической привязки) в scala
я провел последнюю пару дней, пытаясь найти/рамки DI SCALA Java или библиотеку, которая выполняет следующую за мной:
- определяет реализацию интерфейса/признак на пути к классам
- создает и внедряет указанные реализации (важная особенность: все из них) на отмеченном сайте, желательно с аннотацией
- выше не может произойти в компиляторе, потому что мне нужна архитектура плагина, где плагины не вводятся до запуска JVM
- поэтому выше может произойти в JVM начала (без горячей замены необходимо)
Я тяготея больше и больше к OSGi DS, что я большой поклонник, за исключением того, я вижу это как избыточна из-за # 4.
Я посмотрел на указ, сварил, скалади и macwire, и не мог сразу увидеть простой способ сделать это. Моя цель заключается в том, чтобы авторы «плагинов» не должны были точно знать о моем решении для инъекций/IoC, за исключением случайной аннотации (предпочтительно JSR330). На месте инъекции я готов справиться с более уродливыми вещами. :-)
Нужно ли мне рулонировать свое решение здесь, пойти с OSGi, или я пропустил что-то тривиальное в вышеупомянутых библиотеках?
пс: я пытаюсь держаться подальше от OSGi в основном из-за его взаимодействие с каркасом приложения я использую (Акку - не уверен, что расслоение/DS жизненного цикла хорошо смешивается с единой системой актера)
на первый взгляд это выглядит идеально. Я буду погружаться в это. Благодаря! – pgn