我计划用OSGI框架重新实现我的一个小但有用的应用程序。我从来没有使用它,所以我想在小应用程序上使用OSGI是合适的,并且在使用这样的框架时它在速度和/或内存占用方面有很大差异。此外,如果这是一个不错的选择,我会问哪种实现最适合小型应用程序。
谢谢你!答案 0 :(得分:5)
对于现代计算机系统,OSGi的速度和内存占用根本不用担心:记住OSGi是为资源受限的设备开发的。内存占用数百KB,一旦完成服务解析,框架对应用程序的速度没有影响(例如,没有代理)。简而言之,在运行时无后顾之忧。
我喜欢正确设计的OSGi应用程序通过强制您考虑模块和服务来清理应用程序结构的方式。我将远离模块化和服务导向的所有好处,请记住它们同样适用于小型应用程序和大型应用程序。嘿,你甚至可能开始找到可重复使用的组件了!
需要考虑打包和运送您的应用程序:根据您的受众,您可以使用shell脚本运送一堆软件包以使系统继续运行(使用例如Pax Runner),或者你可能需要投入更多花哨的东西,比如带有图标的漂亮的应用程序包装。
答案 1 :(得分:3)
我使用karaf / iPOJO作为OSGi容器,以便在应用程序运行时升级库的版本。
但是,对于一个可以随时重启的小应用程序,我会尽量保持简单。
答案 2 :(得分:3)
今天,OSGi基本没有开销,框架范围从350k到1mb。在运行时,OSGi不会让你失望。
你应该看一下bndtools,它为OSGi包提供了一个非常好的开发环境,包括启动,调试和测试。您可以轻松地在框架之间切换。
您可以在Eclipse市场中找到bndtools。
答案 3 :(得分:2)
OSGi仍然比常规Java项目“少”开销。如果你想进行版本控制,我会依赖Maven模块。
如果您选择OSGi apporach,请查看Eclipse插件创建。它基于Eclipse Equinox,可以通过Eclipse为创建新项目提供的威胁快速应用于新项目。
祝你好运!