http://safalsoft.com/dabao/290/

仍然需要重新启动整个应用服务器

  我也没有在这里完全鼓吹Jar体例,由于我相信它很容易丢弃大大都Ops团队在使用法式办事器办理方面的专业学问。然而,关于Fat JAR的一个惹人瞩目的概念是,因为指导手艺从一起头就担任使用法式办理,它能够以任何想要的体例处置负载类。例如,在开辟东西中,Spring Boot供给了一个基于两个类加载器的机制,一个用于库,另一个用于类,如许就能够在不从头启动整个JVM的环境下更改和从头加载类 - 这是一个很是快速的反馈轮回,鞭策代码更迭改变。

  请留意,它不是Spring Boot vs JavaEE,但次要是JAR和WAR,由于Spring Boot完万能够打包任一格局,而很多使用办事器供给商也是如斯。正如我上面指出的那样,独一贫乏的部门是稍后从头加载类,而不是在发生更改时从头启动整个JVM - 但我相信它会在某个时辰发生。

  它错误地认为使用办事器供给商仍然对峙保守体例 。Wildlfy,TomEE和其他使用办事器实现者能够设置装备摆设为包装Fat JAR,虽然有一个庞大的差别:没有什么像Spring Dev Tools,所以现代码更改时,仍然需要从头启动整个使用办事器。java代码打包关于这些变化的更快速反馈的独一选择是在较初级别工作,例如JRebel整个团队的许可证。可是,仍然有一个利用WAR归档的缘由,这就是Docker。通过供给一个通用的使用办事器Docker镜像作为根本镜像,只需要在其上添加一个WAR,从而使得WAR镜像很是简便。然而利用JAR方式无法实现。

  前段时间,RAM和磁盘空间是稀缺资本。那时,普遍的策略是将分歧的使用法式托管到不异的平台上。那是使用办事器的黄金时代。目前趋势廉价资本的趋向会使其在短期或持久内过时。然而,手艺趋向可能会使它从头遭到青睐。

  当根本架构资本高贵时,具有使用办事器是很好的选择,而且跨使用法式共享这些使用办事器会光鲜明显降低成本,另一方面,它需要深切领会共享不异资本的每个使用法式的负载以及能够摆设在兼容的不异使用法式办事器使用法式上的熟练系统办理员。对于过去来说,能否需要零丁运转一个使用法式,由于它办理不善形成资本华侈?当根本架形成本下降时,懒惰和对风险的厌恶优先于它们,而且在使用法式办事器上托管单个使用法式已成为常态。那时,下一个合乎逻辑的步调就是考虑为什么仍然需要使用法式办事器作为公用组件。java代码打包看来利用Spring 的人也得出了同样的结论,对于Spring Boot使用法式来说,默认模式是打包可施行JAR - 也称为胖JAR。这些使用法式能够运转为java -jar fat.jar因而,有言云:

  在WAR和JAR方式之间进行选择很是依赖于公司在开辟期间能否注重更快速的反馈周期或更优化和可办理的Docker镜像。