Spring Boot可以和OSGi一起使用吗?如果没有,任何计划有OSGi Spring Boot(Apache Felix或Eclipse Equinox)?在我看来,云应用程序必须是高度模块化的,并且可以像OSGi提供的那样进行更新。
Spring Boot可以和OSGi一起使用吗?如果没有,任何计划有OSGi Spring Boot(Apache Felix或Eclipse Equinox)?在我看来,云应用程序必须是高度模块化的,并且可以像OSGi提供的那样进行更新。
一种可能性是将OSGi嵌入到Spring Boot Application中,以便通过框架访问应用程序的某些部分。看到 https://stackoverflow.com/a/4673904/173101 了解如何以编程方式启动OSGi。
但总的来说,没有什么比“OSGi-Support”更像了。 OSGi可以集成到每个Java应用程序中,反之亦然,您可以将每个Java代码(也是您的Spring-Boot应用程序)打包到一个OSGi包中,以便在OSGi容器中启动它(尽管它可能不会太多感觉到了)。
一种可能性是将OSGi嵌入到Spring Boot Application中,以便通过框架访问应用程序的某些部分。看到 https://stackoverflow.com/a/4673904/173101 了解如何以编程方式启动OSGi。
但总的来说,没有什么比“OSGi-Support”更像了。 OSGi可以集成到每个Java应用程序中,反之亦然,您可以将每个Java代码(也是您的Spring-Boot应用程序)打包到一个OSGi包中,以便在OSGi容器中启动它(尽管它可能不会太多感觉到了)。
实际上有很多很好的理由将Spring Boot部署到OSGi中,主要的是性能,特别是如果你的Spring Boot服务是一个功能服务(即它启动,返回结果,结束)的启动性能。我目前在Spring Boot中进行beta测试的应用程序在部署到Equinox的约0.5秒内启动,而自行启动时为3.5秒。其他原因可能是与基于OSGi的应用程序或Java EE服务器的集成。
也就是说,你也可以从Spring Boot运行OSGi,出于性能原因我可能更喜欢Concierge作为一个超过Felix或Equinox的OSGi实现,原因很简单(除非你的应用程序需要更大实现的所有功能)。
另一种方法是将Spring Boot应用程序使用的Spring库包装到MSF4J(来自WSO2)。这并不需要太多工作,并且可以使用10倍的内存使用速度使启动速度提高10倍。
不,它不支持OSGi。 Spring Boot旨在将微服务作为打包应用程序创建,每个依赖项甚至servlet容器都打包在可执行JAR中,因此它具有高度模块化和可更新性,无需提供和配置OSGi容器。