【发布时间】:2014-01-26 10:45:45
【问题描述】:
我们目前正在开发一种新软件,我们认为 OSGi 模块化将非常有用,因为软件本身可以很好地分解为模块化结构,以避免将来代码混乱并能够轻松添加新功能并挂钩到现有的。
我一直在使用两个(可能是最流行的)OSGi 平台,Eclipse Equinox(使用 Gemini Blueprint)和 Apache Felix(使用 Aries)。基本上我现在正要做出决定,我们应该使用哪一个。
我们在 Spring 方面拥有丰富的经验,因此我们希望继续使用它以及注释(例如 @Autowired 用于在同一个包中自动装配 bean,@ServiceReference 用于跨包自动装配),一些特定的 Spring 插件(例如 Data JPA),作为 JPA 提供者的 Hibernate(到目前为止,我们仅使用 Hibernate 作为 JPA 实现的经验,它具有我们需要的所有功能,因此我们希望避免切换到其他东西),JMS 消息传递(使用ActiveMQ 客户端)和其他一些功能。
稍后,我们还希望能够实现我们自己的安全管理器(以控制对某些捆绑包的访问,例如基于它们的数字签名、嵌入权限的证书)
到目前为止,我已经能够制作两个测试包(一个正在使用另一个服务)并将它们视为 Equinox 上的 Spring Bean 和 Gemini BP。但是,我在注释方面遇到了一些问题(而且我不太喜欢在 XML 中连接 bean,尤其是在架构不那么复杂的情况下——它们中的大多数都是单例)。
我也尝试过 Aries(但没有成功启用 Spring;可能只是还没有花足够的时间 :))。
对于此类用例,您推荐哪个 OSGi 平台?
【问题讨论】:
标签: java spring hibernate jpa osgi