网站 权重,网站设计名称,网站建设为什么有些100元的,网站建设费用预算表随着时间的流逝#xff0c;Spring框架已成为Java中使用最广泛的Web开发框架之一#xff0c;这一点已变得显而易见。 在接下来的十年之际#xff0c;Spring最受欢迎的模块Spring Boot刚刚进行了重大更新。 新的Spring Boot版本“ 2.2.0”和年份“ 2020”几乎完美匹配。 因此… 随着时间的流逝Spring框架已成为Java中使用最广泛的Web开发框架之一这一点已变得显而易见。 在接下来的十年之际Spring最受欢迎的模块Spring Boot刚刚进行了重大更新。 新的Spring Boot版本“ 2.2.0”和年份“ 2020”几乎完美匹配。 因此Speedment团队现在通过改进Spring Boot插件来填补空白。 如果这是您第一次了解Speedment那么您将大饱口福因为我们将演示Speedment Spring Boot插件如何使开发人员轻松地使用Speedment构建Spring数据库应用程序Speedment是一个具有基于Stream的强大查询API的ORM 作为其骨干。 关于速度 速度可以描述为Java社区应得的ORM –一种工具包适合那些喜欢快速开发甚至更快的应用程序的人。 通过利用Java Stream API作为与您选择的数据库进行通信的主要方式Speedment使具有Java经验的开发人员感到宾至如归。 除了易于使用的API外Speedment还为开发人员提供了图形化工具可在几秒钟内为他们生成域模型。 如果您总体上对Speedment感兴趣可以找到带有示例的详细文档 在这里 。 本文的其余部分将重点介绍Spring Boot插件。 Spring Boot最快的开始 Speedment Spring Boot插件已经存在了一段时间但是从Speedment 3.2.2开始引入了一个主要功能-可以直接从数据库模型生成完整的CRUD REST API的功能。 步骤取决于您是从头开始还是已有项目步骤会有所不同但是请放心无论您的项目状态如何集成过程都不费吹灰之力。 如果您希望将Spring Boot集成到现有的Speedment项目中则需要在pom.xml中添加以下2个子句 plugingroupIdcom.speedment.enterprise/groupIdartifactIdspeedment-enterprise-maven-plugin/artifactIdversion${speedment.version}/versionconfigurationcomponentscomponentcom.speedment.enterprise.plugins.spring.SpringGeneratorBundle/component/componentsappName${project.artifactId}/appNamepackageName${project.groupId}/packageName/configuration... // Database connector dependency
/plugin
dependencies...
dependencygroupIdjavax.annotation/groupIdartifactIdjavax.annotation-api/artifactIdversion1.3.1/version
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.2.1.RELEASE/version
/dependency
dependencygroupIdcom.speedment.enterprise.plugins/groupIdartifactIdspring-runtime/artifactIdversion${speedment.version}/version
/dependency
...
/dependencies 添加后下次重新生成域模型时应生成特定于Speedment的Spring配置。 生成的配置为Speedment生成的各种管理器处理数据库连接属性和Bean注册。 如果您是从头开始请转到项目初始化程序 为您生成一个Spring-Boot-ready项目。 如何配置项目取决于您自己但是要在生成的项目中包括Spring Boot插件请确保选中了Plugins部分中Spring旁边的复选框。 对项目配置满意后单击“下载”按钮您将收到一个准备好使用的压缩项目。 轻松进行CRUD 安装插件后Speedment工具中将提供一些特定于Spring Boot的选项可用于配置REST API。 您可以通过发出以下命令来启动Speedment工具 mvn speedment:tool br 如果这是您第一次使用Speedment则可能需要按照以下说明熟悉工作流程 “ Hello Speedment”快速入门指南。 默认情况下Speedment工具不会生成REST API。 要为特定表生成CRUD REST API请在树视图中选择该表然后选中“ Generate RestController”选项和“ REST Enable Create / Update / Delete”选项。 通过单击“生成”将生成一组为特定表实施CRUD操作的REST映射。 而已 无需手动编码。 只需通过发出以下命令来启动生成的Spring mvn spring-boot:run 使用REST创建实体 要使用生成的REST API创建新实体必须对工具中指定的路由执行POST请求。 默认情况下此路由的名称与表的名称相同并以模式名称为前缀。 如果取消选中“ REST Endpoint”选项则可以指定自定义路由名称。 请求主体应在JSON对象中包含键值对其中该工具的“ REST字段名称”值是键。 如果我们要创建一个名为“ person”的表其中包含“ id”“ name”和“ age”列我们将发送以下请求以创建一个新的“ person”实体 POST localhost: 8080 /db/person { “id”: 1 , “name”: “Jane”, “age”: 25 } curl -d {“id”: 1,“name”: “Jane”,“age”: 25} -H Content-Type:application/json -X POST localhost:8080/db/person 如果列是自动生成的或正在使用序列则可以将其从POST正文中排除。 如果要强制从POST正文中排除某些列请在工具树视图中单击特定列然后取消选中“包括在创建正文中”并重新生成域模型。 另一方面如果要在执行请求时强制POST正文中存在某个列请选中“在创建正文中是必需的”并重新生成域模型。 使用REST检索实体 要检索我们新创建的实体我们必须在用于创建实体的相同路径上执行GET请求 GET localhost:8080/db/person curl localhost:8080/db/person/1 执行的请求将返回所有现有实体的JSON数组。 在我们的例子中它将返回一个仅包含我们唯一实体的数组 [ { “id”: 1 , “name”: “Jane”, “age”: 25 } ] 官方Speedment文档中详细介绍了过滤器和分类器等高级概念。 使用REST更新现有实体 使用REST API更新现有实体的方式与创建实体的方式类似。 代替POST请求我们执行PATCH请求并且通过实体标识符扩展路由。 我们的实体标识符取决于该表的“主键”列。 由于我们的PK列是数字类型因此我们的实体标识符将是整数。 要更新在上一个示例中创建的实体我们将执行以下请求 PATCH localhost: 8080 /db/person/ 1 { “name”: “Mike”, “age”: 43 } curl -d {“name”: “Jane”,“age”: 25} -H Content-Type:application/json -X PATCH localhost:8080/db/person/1 默认情况下所有列都包含在PATCH主体中“主键”列除外但是它们不是强制性的。 如果您希望从请求正文中强制排除某些列请在工具树视图中单击特定列然后取消选中“包含在更新正文中”并重新生成域模型。 另一方面如果要在请求正文中强制列存在请选中“在更新正文中是必需的”并重新生成域模型。 使用REST删除实体 使用REST API删除实体非常简单–我们在用于实体更新的同一路径上执行DELETE请求。 要删除我们在前面的示例中创建和更新的实体我们将执行以下请求 DELETE localhost:8080/db/person/1 curl -X DELETE localhost:8080/db/person/1 摘要 启动新项目有时会很麻烦。 作为开发人员我们希望尽可能避免这些不便并直接涉足编码。 借助Speedment的新Spring Boot插件开发人员可以直接从数据库中自动生成所有必要的配置和REST控制器从而领先于游戏。 我们希望您喜欢Speedment Spring Boot插件提供的有关新CRUD功能的简短指南。 如果您对新功能的更详细说明感兴趣请转至官方文档 您将在其中找到有关CRUD新功能的深入说明和示例。 翻译自: https://www.javacodegeeks.com/2019/12/java-spring-how-to-generate-an-entire-database-crud-rest-api-with-speedment.html