【问题标题】:A Spring application in a OSGI environmentOSGI 环境中的 Spring 应用程序
【发布时间】:2017-04-20 01:39:46
【问题描述】:

我们有一个基于 spring 的应用程序(依赖注入、持久性、事务......),我们正在考虑迁移到 serviceMix,而不是我们当前的 WSO2

我一直在做一些研究,以了解有关 spring+osgi 上下文中的最佳实践的想法,这个想法是进行迁移而不必丢弃我们拥有的所有东西,spring-dm 似乎是一个不错的选择想法,因为它扫描包含ApplicationContext 的包并加载它们,所以我想这是一个不需要我们做很多工作的解决方案(如果我错了请纠正我),尽管如此,它是一个死项目我们不会使用它。

所以我有一些问题: 有没有办法保留我们的配置文件? 是否有任何好的做法来进行此类迁移(我想一定有一些开发人员经历过相同的场景)?

【问题讨论】:

    标签: java spring osgi apache-servicemix


    【解决方案1】:

    Spring-dm 确实已经死了。最简单的转换应该是到blueprint,因为它类似于spring。

    blueprint-maven-plugin 的帮助下,我们完成了一个中型项目(约 50k 行)从 spring 到蓝图的迁移。它允许使用一些 spring 以及 JEE 注释。因此,如果支持您使用的注释,那么迁移应该是可行的。对于 JPA,有同样支持 JEE 注释的 Aries JPA。

    Here you find a small example of how the end result can look like.

    【讨论】:

    • 感谢响应,所以如果我理解正确,迁移将是:保留注释(如果插件支持)+将每个基于 xml 的配置转换为蓝图?
    • 是的。如果您需要更多帮助,我可以提供一些提示。
    • 我很想得到一些建议,谢谢,最后一个问题,你认为有一种方法可以保留spring的配置文件吗?你会建议吗(我们的代码库很大,迁移不会做一件容易的事)
    • 这取决于一点。在 OSGi 中,通常每个包都有一个配置。因此,如果您的 spring 配置文件映射到包,那么您可以保留它们。在任何情况下,请注意不要在 karaf 中为多个捆绑包使用相同的配置 pid (=/etc/file)。它宁可不工作。
    • 那么,ApplicationContext是如何加载的?
    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 2015-03-15
    • 1970-01-01
    • 2018-05-14
    • 2019-12-04
    • 2021-09-18
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多