2014-01-30 236 views
1

我是OSGi的新手,我有一個我想遷移到OSGi的應用程序。春季交易管理和OSGi

我創建了一個只包含DAO接口的包。這個包代表了我的DAO服務。 我還創建了第二個使用JDBC提供DAO接口實現的bundle。該軟件包使用Apache Felix Dependency Manager在每個接口上註冊一項服務。這樣,我的服務可以從其他組件訪問。

我的DAO實現類用@Repository註釋標註了自動類路徑掃描,但現在我使用OSGi服務註冊表進行服務註冊。因此,可以通過直接使用Apache Felix Dependency Manager的客戶端代碼獲取服務。

我的DAO實現類的方法也使用@Transactional註釋進行註釋以進行事務管理。問題在於@Transactional註釋不會有任何影響,因爲DAO沒有在任何Spring容器中註冊。

使用OSGi時處理事務的正確方法是什麼?我不想使用Spring編程式事務管理。

謝謝,邁克爾 -

回答

2

看看白羊座藍圖與白羊座JPA和JTA。你可以像下面的藍圖進行配置:

<bean id="jpaDao" 
    class="my.jpa.JpaDao"> 
    <jpa:context property="em" unitname="persistence" /> 
    <tx:transaction method="*" value="Required" /> 
</bean> 

你還可以在my github找到工作樣本,樣本是在blueprint.xml line 12