Я новичок в OSGi, и у меня есть приложение, которое я хотел бы перенести на OSGi.
Я создал один комплект, состоящий только из интерфейсов DAO. Этот пакет представляет мои услуги DAO. Я также создал второй пакет, который предоставляет реализации интерфейсов DAO с использованием JDBC. Этот пакет регистрирует одну службу для каждого интерфейса с помощью диспетчера зависимостей Apache Felix. Таким образом, мои услуги доступны из других компонентов.
Мои классы реализации DAO были аннотированы аннотацией @Repository
для автоматического сканирования пути к классам, но теперь я использую реестр служб OSGi для регистрации службы. Следовательно, услуги могут быть получены клиентским кодом напрямую с помощью Apache Felix Dependency Manager.
Методы моих классов реализации DAO также снабжены аннотацией @Transactional
для управления транзакциями. Проблема в том, что аннотации @Transactional
не будут иметь никакого эффекта, поскольку DAO не зарегистрированы ни в одном контейнере Spring.
Как правильно обрабатывать транзакции при использовании OSGi? Я не хочу использовать программное управление транзакциями Spring.
Спасибо, Микаэль