随着Spring Boot的第4版发布,为Web开发企业应用程序变得非常容易。 代表开发人员仍然需要大量时间的事情是,例如在Hibernate中对现有数据库进行建模,以获取数据的面向对象的视图。 在本教程中,我们将探索如何与开源一起使用开源工具Speedment与Spring一起生成实体,管理器和控制器,从而使您可以更快地开始开发。

关于速度

Speedment是一个开放源代码Java工具包,使开发人员可以快速生成与数据库进行通信所需的所有粘合。 使用图形工具,您可以在几秒钟内连接到数据库并生成Java源。 与Spring一样,Speedment以模块化的方式构建,因此易于学习和仅使用您感兴趣的部分。在本文中,除了标准文件之外,我们还将使用Speedment插件来生成Spring控制器。

步骤1:创建一个新的Spring Boot项目

Spring Boot由许多模板组成,可以轻松地开始使用新应用程序。 我们将使用一个称为“ spring-boot-starter-web”的框架来设置我们的Web应用程序。

首先创建一个新的Maven项目,然后将以下内容添加到“ pom.xml”文件中:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.1.RELEASE</version></parent><groupId>com.github.pyknic</groupId><artifactId>speedment-spring-example</artifactId><version>1.0.0-SNAPSHOT</version><packaging>jar</packaging><properties><java.version>1.8</java.version><speedment.version>3.0.1</speedment.version><mysql.version>5.1.39</mysql.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.speedment</groupId><artifactId>speedment-maven-plugin</artifactId><version>${speedment.version}</version><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.speedment.plugins</groupId><artifactId>spring-generator</artifactId><version>${speedment.version}</version></dependency></dependencies><configuration><components>
<component>com.speedment.plugins.spring.SpringGeneratorBundle</component></components></configuration></plugin></plugins></build><dependencies><dependency><groupId>com.speedment</groupId><artifactId>runtime</artifactId><version>${speedment.version}</version><type>pom</type></dependency><dependency><groupId>com.speedment.plugins</groupId><artifactId>spring-generator</artifactId><version>${speedment.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>

这会将您的项目配置为Spring Boot应用程序,并告诉它将Springment与Spring Generator插件一起使用。

步骤2:使用速度生成源

修改pom文件后,IDE中将提供许多新的Maven目标。 速度可以图形方式使用,也可以从命令行使用。 在本教程中,我们将使用UI。 要启动Speedment Tool,请在项目上执行以下Maven目标:

mvn speedment:tool

将打开一个对话框,使您可以连接到数据库。 连接后,您将在左侧看到一个窗口,其中概述了数据库,而在中心则显示了各种配置选项。 对于本教程,默认设置就足够了,因此只需在工具栏中按“生成”即可。

如果切换回IDE,您将看到新生成的源。 您会注意到每个类都有两个副本,其中一个带有“ Generated”前缀。 这样做的原因是,如果您需要在某个时候重新生成源代码,则允许进行修改而没有覆盖更改的风险。 具有“已生成”前缀的文件将始终被覆盖,而没有前缀的文件将仅被创建一次。

步骤3:创建一个主文件

Speedment已经生成了完整的数据库面向对象模型,但是我们仍然需要为应用程序创建一个入口点。 我们将其放在主程序包中,并将其命名为Main.java。

Main.java

package com.github.pyknic.spring;import com.speedment.common.logger.Level;
import com.speedment.common.logger.LoggerManager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Main {public static void main(String... args) {SpringApplication.run(Main.class, args);}
}

如果我们启动应用程序,Spring Boot将为数据库中的每个表设置一个独立的Web应用程序,并为其生成一个控制器。 我们可以通过在浏览器中转到以下路径来进行尝试:

http://localhost:8080/hare/

现在将返回数据库中“兔子”表的JSON表示形式。

[{"id":1, "name":"Harry", "color":"Gray", "age":3},{"id":2, "name":"Henrietta", "color":"White", "age":2},{"id":3, "name":"Henry", "color":"Black", "age":9}
]

注意#1:如果您遇到一个异常,说明此内容…

There was an unexpected error (type=Internal Server Error, status=500).
Could not write content: No value present (through reference chain:
java.util.ArrayList[0]...

…这可能意味着您的数据库中有Speedment选择实现为OptionalLong,OptionalInt等的可空列。您可以通过在Speedment Tool中将“可空实现”字段设置为WRAPPER而不是那些列的OPTIONAL来关闭此功能。

注意#2:如果您在这种样式中遇到异常,则…

java.sql.SQLException: Access denied for user 'root'@'localhost'
(using password: YES)

…您将需要在项目的根目录中创建一个application.properties文件,并添加数据库的身份验证详细信息。

application.properties

jdbc.username=root
jdbc.password=password

摘要

在本文中,我们使用了Speedment和Spring Generator插件来自动创建完整的Spring Boot Application。 Speedment已生成用于与数据库通信的实体,管理器和REST控制器。 如果您想了解有关Speedment的更多信息以及如何控制生成的代码,请在Speedment GitHub页面上查看许多示例!

翻译自: https://www.javacodegeeks.com/2016/12/creating-rest-api-speedment-spring.html

使用Speedment和Spring创建REST API相关推荐

  1. Spring Data REST API集成Springfox、Swagger

    原文: Documenting a Spring Data REST API with Springfox and Swagger 使用Spring Date REST,你可以迅速为Spring Da ...

  2. 将Swagger与Spring Boot REST API集成

    在上一篇文章中,我谈到了我使用Spring Boot创建RESTFul Services的经验. 在创建REST API时,正确的文档是其中的必需部分. 昂首阔步是什么? Swagger (Swagg ...

  3. Spring入门篇——第6章 Spring AOP的API介绍

    第6章 Spring AOP的API介绍 主要介绍Spring AOP中常用的API. 6-1 Spring AOP API的Pointcut.advice概念及应用 映射方法是sa开头的所有方法 如 ...

  4. J2EE高级开发框架小课程之Spring框架1——Spring创建三种方式:使用无参构造器创建对象(bean标签的方式),使用静态方法创建对象,使用实例方法创建对象(非静态方法)

    Spring是什么? 是一个开源的.用于简化企业级应用开发的应用开发框架. a.简化开发: Spring框架对很多常用的api做了简化,比如,使用Spring jdbc (Spring jdbc是Sp ...

  5. 元数据驱动设计 —— 为动态移动应用创建Web API

    时间回到多年之前(当时我的头发还没这么稀疏),Google在4月1日这一天发布了Gmail,这不由得令许多人怀疑这个产品是否只是Google精心炮制的一个玩笑.但谁又能够去指责他们的怀疑呢?毕竟整个互 ...

  6. Spring创建Bean的3种方式

    1. Spring创建Bean的三种方式 1. 调用构造器(因为常用就不讲) 2. 调用静态工厂方法 3. 调用实例工厂方法 2. 使用静态工厂方法 1.此时<bean.../>元素要指定 ...

  7. spring创建web项目_使用Spring WS创建合同优先的Web服务

    spring创建web项目 1引言 本文介绍了如何使用来实现和测试SOAP Web服务 Spring Web Services项目 . 本示例将JAXB2用于(取消)编组. 为了开发服务,我将使用合同 ...

  8. 在ASP.NET Core 2.0中创建Web API

    目录 介绍 先决条件 软件 技能 使用代码 第01步 - 创建项目 第02步 - 安装Nuget包 步骤03 - 添加模型 步骤04 - 添加控制器 步骤05 - 设置依赖注入 步骤06 - 运行We ...

  9. php jquery api文档,使用PHP、jQuery和JSON创建公共API

    使用PHP.jQuery和JSON创建公共API 本章教程将为大家展示一个使用PHP.jQuery和JSON创建公共API的简单方法. 首先,我们需要一个连接数据库的文件 connection.php ...

最新文章

  1. 为 Django admin 登录页添加验证码
  2. LeetCode--023--合并K个排序链表
  3. 设置 Xcode 自动生成代码片段
  4. VS2012连接数据库问题
  5. Python描述性统计
  6. 公司培训笔记(1):沟通的技巧
  7. Mysql更换版本的操作,非常详细(包括数据备份,卸载,安装,还原)
  8. Qt实现简单的密码加密
  9. 【CRM】开源CRM
  10. 用树莓派USB摄像头做个监控
  11. 【自制】3D全息投影
  12. 阿里云注册商标现身说法成功率打在公屏上
  13. c语言can收发数据原理,汽车车载网络CAN收发器作用和工作原理
  14. 图像修复 python_用python进行图像修复与去除水印
  15. 【微机原理】数字电路器件—门 与门 或门 非门电路及实例
  16. 7-114 用if-else语句编程百分制成绩转换为五分制成绩
  17. 读书印记 - 《心流:最优体验心理学》
  18. E4 B8 80 E5 9D 97 E4 BA 92 E5 8A A8 28 E5 8C 97 E4 ... python解码
  19. 设置网站ico图标的两种方法
  20. Java运用jna、vlcj实现音乐和视频的播放器1-主界面设计

热门文章

  1. 一道丧心病狂的java面试题
  2. SaaS,PaaS,IaaS都是什么鬼
  3. JDK8新特性之Optional
  4. mybatis使用全注解的方式案例(包含一对多关系映射)
  5. vue.js 01 模板语法
  6. Android 对话框,确定取消
  7. c/c++ 字符串分割
  8. java常用代码_Java 中常用代码 (欢迎补充)
  9. 散列算法,Remal使用散列算法
  10. jvm内存分配与收回策略