基本上,我希望能够使用Spring在OSGI包中执行此操作:
据我所知,Spring DM已退役进入Eclipse Gemini。我仍然可以使用spring DM 2.0,它可以让我指出一个带有弹簧蓝图的点?有没有办法使用'常规'Spring来做到这一点?
我如何做第2点?是否可以在OSGI包中使用Spring来提供事务?有人这么成功吗?
我应该在OSGI中远离Spring,还是有更多我不知道的?
答案 0 :(得分:0)
嗯,你仍然可以使用Spring-DM甚至是“旧的”1.2.1,虽然我真的建议切换到Blueprint,它只是与OSGi一起运行顺畅,与Spring本身没什么不同。特别是因为你想在你的bean上做交易。 我最喜欢的设置是使用OpenJPA的Blueprint(Aries或Gemini),它在OSGi环境中效果最佳。
这里有一个关于如何使用Aries Blueprint
执行此操作的简单示例<bean id="myDao" class="my.project.dao.jpa.MyJpaDao">
<jpa:context property="em" unitname="persistenc-unit" />
<tx:transaction method="*" value="Required" />
</bean>
您可以在该类上进行任何方法事务。 我通常将这些DAO对象保存在仅包含我的实体类和DAO的单独包中。要在我的应用程序中保留这些DAO,我注册为服务
<service id="myDAO" ref="myDao" interface="my.project.dao.MyDao" />
现在,对于你来说,仍然可以通过它进行“软”转移到蓝图。 如果你让你的实体像我一样分开一个额外的包,你只需要从你的Spring引用那些DAO-Services(与Spring-DM一起使用,在这种情况下,它建议坚持使用spring-dm 1.2.1,你'否则会得到非常糟糕的问题),并从那里继续你的标准。弹簧应用。这是OSGi真正的美丽,您可以根据需要混合所有这些服务框架。