使用GORM构建Spring Boot应用程序

了解如何使用GORM构建Spring Boot应用程序

s本·莱茵·塞尔吉奥·德尔阿莫

365bet地区版本N Spring Boot版本发布

365bet地区培训

365bet地区培训由创建并积极维护365bet地区框架的人们开发和交付

入门

在本指南中,您将使用GORM构建Spring Boot应用程序

您将需要什么

要完成本指南,您将需要以下内容

  • 花些时间在你手上

  • 体面的文本编辑器或IDE

  • 安装了JDK或更高版本JAVA首页适当配置

如何完成指南

要开始,请执行以下操作

要么

365bet地区指南存储库包含两个文件夹

  • 初始初始项目通常是一个简单的365bet地区应用程序,其中包含一些其他代码,可以帮助您快速入门

  • 完成一个完整的示例它是按照指南中介绍的步骤进行操作并将这些更改应用于文档的结果。初始

要完成指南,请转到初始

  • 光盘进入365bet地区引导没有grails的gorm初始

并按照下一节中的说明进行操作

您可以直接前往完成的例子如果你光盘进入grails指导没有grails的gorm完成

如果您想从头开始,请使用创建一个新的Spring Boot应用程序春季初始化.

选择一个摇篮项目使用Groovy春季靴选择构建和项目类型后,将组设置为您的组织,即举个例子在我们的情况下,我们将使用演示.

完成后,添加网页H对项目的依赖

buildAndMetadata

请点击产生专案.

配置构建

编辑建立gradle包含GORM依赖项的文件

建立gradle
插件ID'org springframework引导''发布'ID'春季依赖管理''发布'ID'时髦''举个例子''快照'sourceCompatibility'1.8'仓库Maven中央Maven网址"https repo grails org grails核心" } (1)依赖实现'org springframework boot spring boot starter web'实作'组织groovy groovy'

        (2)实作"org grails gorm冬眠春季靴发布"实作"组织休眠休眠核心"实作"组织休眠休眠ehcache"

        (3)运行"组织apache tomcat tomcat jdbc"运行"组织apache tomcat嵌入tomcat嵌入日志log j"仅运行时'与h数据库h'测试实施'org springframework boot spring boot starter test'排除: 'org junit年份', 模组: 'junit老式引擎'测试实施"org springframework boot spring boot starter webflux" (4)测试使用JUnitPlatform
1 用于解决GORM依赖关系的存储库
2 将GORM所需的依赖项添加到我们的项目中
3 对于连接池
4 使用网络客户端在测试中包括春季webflux项目中的模块

组态

GORM for Hibernate可以配置为src主要资源应用yml使用Spring Boot时的文件

src主要资源应用yml
:
    hbm ddl:
        汽车更新方言org休眠方言H方言弹簧:
    数据源:
        driverClassNameorg h驱动程序网址: 数据库:H:记忆devDb用户名她的密码: ""

编写申请

365bet地区我们将创建一个类似于365bet地区应用程序中的包结构

  • 演示控制器

  • 演示域

  • 演示服务

  • 演示初始化

创建域

现在,有了我们的软件包,让我们继续创建您的域对象

  • 厂商groovy

  • 车辆槽

随意使用您喜欢的IDE来创建它们或执行以下命令

cd完整src主groovy演示域touch制造商groovy touch车辆groovy

现在我们所有的班级存根都到位了,让我们继续编辑它们

src主groovy演示域制造商groovy
演示域 grails gorm注释实体
 常规转换ToString
 组织grails数据存储gorm GormEntity

ToString
实体
 制造商 实施GormEntity {

    静态的有很多汽车车辆静态的约束名称空白: 
    }
}
src主groovy演示域车辆groovy
演示域 grails gorm注释实体
 组织grails数据存储gorm GormEntity
 常规转换ToString

ToString
实体
 车辆 实施GormEntity {
    整数静态的属于制造商制造商静态的约束名称可为空: , 空白: 
    }
}

制造商车辆有一对多的关系

365bet地区因此,我们在365bet地区之外使用了GORM,因此我们需要使用grails gorm注释实体此外,我们实施了GormEntity365bet地区特质仅仅是为了在365bet地区之外帮助GORM的IDE支持

种子数据

当应用程序启动时,我们保存一些数据

src主要groovy演示应用groovy
演示 org springframework boot ApplicationArguments
 演示init BootStrap
 常规转换CompileStatic
 org springframework bean工厂注释自动装配
 org springframework boot ApplicationRunner
 org springframework boot SpringApplication
 org springframework boot自动配置SpringBootApplication
 org springframework boot autoconfigure orm jpa HibernateJpaAutoConfiguration

静态编译
SpringBoot应用程序排除HibernateJpaAutoConfiguration类(1)
 应用 实施ApplicationRunner自动接线BootStrap bootStrap静态的 虚空主要[]args SpringApplication运行应用程序args虚空运行ApplicationArguments args抛出 例外bootStrap初始化
1 禁用Hibernate JPA的自动配置
src main groovy演示init BootStrap groovy
演示初始化 演示域制造商
 演示域载具
 演示服务ManufacturerService
 grails gorm Transactions事务性
 常规转换CompileStatic
 org springframework bean工厂注释自动装配
 org springframework构造型组件

零件
静态编译
  {

    自动接线厂商服务厂商服务交易性
    虚空初始制造商奥迪制造商: '奥迪'奥迪Addsovicles车辆: '一种', : 1996奥迪Addsovicles车辆: '一种', : 1994ManufacturerServiceSaveAudit制造商福特制造商: '福特汽车'福特addToVehicles车辆: '福特KA', : 1996制造商服务保存福特

创建服务层

接下来,让我们为您的应用程序创建服务层

cd src主要groovy演示服务touch ManufacturerService touch VehicleService

我们将使用GORM数据服务

数据服务通过添加使用GORM逻辑自动实现抽象类或接口的功能,使工作脱离了已实现的服务层逻辑

src主要groovy演示服务ManufacturerService groovy
演示服务 演示域制造商
 grails gorm交易ReadOnly
 grails gorm Transactions事务性
 常规转换CompileStatic
 org springframework原型服务

静态编译
ilsgorm服务服务制造商服务
接口制造商服务清单findAll制造商保存制造商制造商
src main groovy演示服务VehicleService groovy
演示服务 演示域制造商
 演示域载具
 grails gorm服务在哪里
 常规转换CompileStatic
 org springframework原型服务

静态编译
ils服务服务车辆服务
接口车辆服务哪里制造商名称ManufacturerName清单findAllByManufacturer生产商名称

创建一个控制器

最后,让我们创建一些控制器,以便我们可以对数据进行基本的UI访问

cd src主groovy演示控制器touch ManufacturerController touch VehicleController

现在让我们在下面编辑控制器src主groovy演示控制器.

控制器将具有以下注释

  • RestController将控制器表示为静态控制器,它可以通过url返回数据

  • 自动接线允许使用依赖项注入来访问我们的服务

  • 请求映射设置方法的URL映射

src主groovy演示控制器VehicleController groovy
演示控制器 演示服务VehicleService
 org springframework bean工厂注释自动装配
 org springframework Web绑定注释PathVariable
 org springframework网络绑定注释RequestMapping
 org springframework Web绑定注释RestController

RestController
 车辆控制器 {

    自动接线车辆服务车辆服务请求映射("厂商名称车辆")
    清单<车辆由制造商路径变量 厂商名称车辆服务findAllByManufacturer厂商名称名称

添加测试

src测试groovy演示控制器VehicleControllerTest groovy
演示控制器 org junit jupiter api测试
 org springframework bean工厂注释自动装配
 org springframework引导测试上下文SpringBootTest
 组织springframework测试Web反应服务器WebTestClient

春天开机测试webEnvironment SpringBootTest WebEnvironment随机端口 VehicleControllerTest {

    自动接线WebTestClient webClient测试
    虚空fetchAudiVehicles这个webClient获取uri"奥迪车"交换ExpectBodyisEqualTo'A A')
    }
}
src主groovy演示控制器ManufacturerController groovy
演示控制器 演示服务ManufacturerService
 org springframework bean工厂注释自动装配
 org springframework网络绑定注释RequestMapping
 org springframework Web绑定注释RestController

RestController
 制造商控制器 {

    自动接线厂商服务厂商服务请求映射("/")
    清单<索引制造商服务findAll名称

添加测试

src测试groovy演示控制器ManufacturerControllerTest groovy
演示控制器 org junit jupiter api测试
 org springframework bean工厂注释自动装配
 org springframework引导测试上下文SpringBootTest
 组织springframework测试Web反应服务器WebTestClient

春天开机测试webEnvironment SpringBootTest WebEnvironment随机端口 制造商控制器测试 {

    自动接线WebTestClient webClient测试
    虚空fetchManufacturer这个webClient获取uri"/"交换ExpectBodyisEqualTo'奥迪福特')
    }
}

运行应用

gradlew bootRun

您应该能够调用端点

curl http本地主机

得到回应

奥迪福特

或取回制造商的车辆

卷曲http localhost奥迪车辆

得到回应

A A

365bet地区您需要有关GORM或365bet地区的帮助吗

365bet地区服务:

免费咨询

OCI 365bet地区团队包括365bet地区联合创始人检查我们的并向发展和维护365bet地区的工程师学习

Grails OCI团队