建站系统搭建音乐网站,南昌vr网站开发,杭州萧山做网站,个人网站备案地址几种传统的ORM不能完全遵循Java模块封装#xff08;JPMS#xff09;。 这通常意味着在部署微服务时会使用很多不必要的文件和类。 最新的主要版本3.2的开源 Speedance通过引入模块系统支持来解决此问题#xff0c;该模块支持对云应用程序进行有效部署并提供更严格的API。 … 几种传统的ORM不能完全遵循Java模块封装JPMS。 这通常意味着在部署微服务时会使用很多不必要的文件和类。 最新的主要版本3.2的开源 Speedance通过引入模块系统支持来解决此问题该模块支持对云应用程序进行有效部署并提供更严格的API。 在本文中您将学习Speedment 3.2的新增功能以及如何部署体积缩小10倍且使用更少内存的云数据库应用程序。 支持Java平台模块系统JPMS Speedment 3.2的最大功能无疑是对JPMS的本地支持。 现在Speedment中的每个模块都包含自己的模块 module-info.java文件并采用严格的封装。 作为开发人员使用模块系统完全是可选的并且由于其多版本的JARSpeedment仍然可以在Java 8下运行。您可以选择现在以后或从不迁移到JPMS。 其他ORM例如Hibernate可能支持JPMS的某些部分但不遵循严格的封装例如要求 --add-opens手动添加从而绕过保护措施以防止访问内部/受保护的类。 可选模块允许较小的微服务 Speedment模块已在内部进行了重组以减少模块之间的耦合。 结果某些模块现在是可选的从而允许部署甚至更小的微服务。 例如现在可以分别选择各种数据库连接器并且 JoinComponent也是可选的。 缩小尺寸 不再需要多个内部模块例如“惰性”和“可变流”并且对其他一些内部模块进行了优化并减小了尺寸。 强封装 由于有了模块系统内部类现在被完全隐藏甚至受到保护免于深度反射。 这会增强API因为仅可以访问故意可见的类和方法因此可以在不影响公共API的情况下将来迁移内部类。 云部署示例 与在标准JDK下运行应用程序相比可以创建一个自定义JRE 应用程序加速库该库小10倍并且使用的内存减少了25。 如果您在云中运行大量微服务那么这将带来巨大的差异。 我的文章“ Java如何创建轻量级数据库微服务 ”。 数据库应用程序连接到带有电影演员等的“ Sakila”数据库的公共MySQL云实例。它检索十个最长的电影并按长度顺序将它们打印在控制台上。 定制的JRE仍然具有真正的JVM的所有优点例如垃圾收集JIT编译器等。只是已删除的未使用模块和工具。 final Speedment app new SakilaApplicationBuilder() .withPassword( sakila ) .build(); final FilmManager films app.getOrThrow(FilmManager. class ); System.out.println( These are the ten longest films rated as PG-13: ); films.stream() .filter(Film.RATING.equal( PG-13 )) .sorted(Film.LENGTH.reversed()) .limit( 10 ) .map(film - String.format( %-18s %d min , film.getTitle(), film.getLength().orElse( 0 )) ) .forEach(System.out::println); 该应用程序将产生以下输出 These are the ten longest films rated as PG- 13 : GANGS PRIDE 185 min CHICAGO NORTH 185 min POND SEATTLE 185 min THEORY MERMAID 184 min CONSPIRACY SPIRIT 184 min FRONTIER CABIN 183 min REDS POCUS 182 min HOTEL HAPPINESS 181 min JACKET FRISCO 181 min MIXED DOORS 180 min 事实证明与仅占用30 MB甚至包括应用程序和Speedment运行时的定制JRE相比标准开放JDK 11的存储要求为300 MB。 因此可以将存储需求减少大约90。 在检查堆使用情况时 jmap结论是RAM使用量也减少了约25。 如何获得速度3.2 新用户可以使用以下工具下载Speedment 3.2 初始化器 。 现有用户只能在其用户中更新速度版本 pom.xml文件并通过发出以下命令来重新生成域模型 mvn speedment:generate 而已。 现在您的旧Speedment应用程序将在新版本下运行。 如果要使用模块系统请添加以下内容 module-info.java文件到Java 8应用程序的根目录 module your.module.name { requires com.speedment.runtime.application; requires com.speedment.runtime.connector.mysql; // (*) } *根据数据库类型您必须将MySQL模块替换为数据库的相应模块。 阅读有关各种数据库连接器模块的所有信息 在这里 。 资源资源 JPMS模块的基础知识 完整的Speedment版本说明历史记录可以在这里找到 在GitHub上加速 Speedment Initializer能够生成项目模板 翻译自: https://www.javacodegeeks.com/2019/11/java-release-of-speedment-3-2-now-enabling-lightweight-database-microservices.html