gzyueqian
13352868059

Java培训:Vestige—Java应用程序管理器

更新时间: 2021-11-22 10:19:48来源: 粤嵌教育浏览量:9728

  Vestige是一个安装、运行和更新JavaSE应用程序的框架。是为Java服务器应用程序(POP、CARDDAV、RESTful…)带来可移植性。通过参加java培训,你可以学习更多java框架,以提高java技能。


  你可能会说Java已经是可移植的了,的确如此,但将操作系统特定于JVM的胶水却不是。Java服务器应用程序所需的内容包括:


  可移植安装(创建rpm、DEB、EXE、DMG都很繁琐)。


  自动启动计算机/用户会话。


  与用户共享的目录(配置、日志)和仅用于应用程序的目录(缓存、TMP)。


  即使配置了PAC代理,也可以使用internet配置(下载应用程序更新、访问web服务)。


  Vestige带来了这一切。与其他框架一样,它使用Maven解析器(以前称为Eclipse-ether)从.m2/repository文件夹下载和执行应用程序。与现有框架不同,Vestige可以攻击依赖项来替换、添加或删除任何依赖项。此外,它允许你在一个类加载器(类路径模式)和每个JAR一个类加载器(平台模式)之间进行选择。平台模式允许更快的类加载(因为它只在一个JAR中搜索)和应用程序之间的类共享。


  Vestige在JVM 6到10上运行。在JVM9或更高版本上启动时,它使用JPMS(以前称为Jigsaw)并为每个类加载器创建一个模块层,以保持应用程序之间的类共享处于启用状态。在java培训中,也有关于Vestige的学习,理论知识+实践项目,双管齐下,学以致用,让你深入浅出地学习java。



  不过,在Vestige中运行Tomcat或Felix并不是很有用,因为最常更改的部分是功能部分,而功能部分位于Tomcat的webapp文件夹中的WAR中,以及OSGi中的一些捆绑包中,因此功能部分没有类共享。


  但是,如果我们可以在Maven存储库中发布一个WAR,而不使用它的lib目录,Tomcat就可以发展并使用残余Maven SPI在web应用程序之间以及与Vestige JVM上运行的其他应用程序共享类。


  Vestige专用于JavaSE应用程序,并试图限制移植应用程序所需的约束。


  移植到OSGi或JPMS是一项繁琐的任务:你必须管理导入/导出包/模块。但移植到Vestige要简单得多。你只需删除所有JVM范围的操作(System.exit、System.setProperty和shutdown hooks)。如果不删除它们,应用程序将运行,但可能会干扰其他应用程序行为。


  如果希望在平台模式下运行并在应用程序之间共享类,则必须使所有静态变量不可变(final是不够的),并使用线程上下文类加载器执行IOC。


  Vestige为静态(应用程序停止)和动态(应用程序运行)更新提供SPI。动态更新很难实现(应该禁止阻塞操作),但这是可能的。想要学习java更多知识和技能,可以考虑参加java培训,有经验丰富的专业讲师指导教学,有紧跟市场需求的实时课程,可以让你快速掌握这门技术,节约时间,少走弯路。

免费预约试听课