千家信息网

如何使用loyom-crud-spring-boot-starter构建CRUD后端API

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这篇文章将为大家详细讲解有关如何使用loyom-crud-spring-boot-starter构建CRUD后端API,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识
千家信息网最后更新 2024年10月23日如何使用loyom-crud-spring-boot-starter构建CRUD后端API

这篇文章将为大家详细讲解有关如何使用loyom-crud-spring-boot-starter构建CRUD后端API,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

框架 loyom-crud-spring-boot-starter 是基于SpringBoot 的 Web和JPA 构建而成的,因此只支持SpringBoot的项目

首先:

我们先建立一个Java maven 项目. pom配置如下:

    4.0.0            org.springframework.boot        spring-boot-starter-parent        2.2.1.RELEASE                com.loyom    crud-demo    1.0-SNAPSHOT            UTF-8        UTF-8        1.8        UTF-8        1.8        1.8                            com.loyom            loyom-crud-spring-boot-starter            1.1.RELEASE                                                    org.springframework.boot                spring-boot-maven-plugin                                                loyom-public            loyom public            http://oen.im/nexus/repository/maven-public/                            true                always                warn                                        true                always                warn                        

因为框架jar并未发布到中央仓库,因此现使用

http://oen.im/nexus/repository/maven-public/

仓库地址

配置好了pom文件后再设置application.yml

server:  port: 8080  session-timeout: 1800  connection-timeout: 5000spring:  application:    name: CrudDemo  profiles:    active: dev  jackson:    #日期格式化    date-format: yyyy-MM-dd HH:mm:ss    serialization:      #格式化输出      indent_output: true      #忽略无法转换的对象      fail_on_empty_beans: true    #设置空如何序列化    defaultPropertyInclusion: ALWAYS    deserialization:      #允许对象忽略json中不存在的属性      fail_on_unknown_properties: false    parser:      #允许出现特殊字符和转义符      allow_unquoted_control_chars: true      #允许出现单引号      allow_single_quotes: true  datasource:    url: jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&autoReconnect=true&failOverReadOnly=false&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true    username: root    password: 123456789    driver-class-name: com.mysql.cj.jdbc.Driver    max-active: 100    max-idle: 8    min-idle: 8    initial-size: 10    validation-query: select 1    max-wait-millis: 10000  jpa:    generate-ddl: true    show-sql: true    database: mysql    properties: { "hibernate.naming.physical-strategy": "org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy"}    hibernate:      use-new-id-generator-mappings: false      enable_lazy_load_no_trans: true      naming:        physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy  configuration:    map-underscore-to-camel-case: truelogging:  path: ./logs  level:    com.loyom: debug

配置弄好了以后,

需要在数据库中建立一个空数据库 db_test ,

create database `db_test` default charset utf8mb4 collate utf8mb4_bin;

因为在配置中配置了自动建表,因此不用手动创建表,现在可以开始写代码了...

首先搞个启动类:

package com.loyom.crud.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class DemoLauncher {    public static void main(String[] args) {        SpringApplication.run(DemoLauncher.class, args);    }}

再写个数据库类:

package com.loyom.crud.demo;import javax.persistence.*;@Entity@Table(name = "test_data")public class TestData {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    @Column(name = "id", nullable = false, length = 18)    private Long id;    @Column(name = "name", nullable = false, length = 50)    private String name;    @Column(name = "level", nullable = false)    private Integer level;    @Column(name = "create_time", nullable = false, length = 14)    private Long createTime;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getLevel() {        return level;    }    public void setLevel(Integer level) {        this.level = level;    }    public Long getCreateTime() {        return createTime;    }    public void setCreateTime(Long createTime) {        this.createTime = createTime;    }}

再搞个数据库操作类:

package com.loyom.crud.demo;import com.loyom.crud.annotation.CrudController;import com.loyom.crud.service.AbsDao;@CrudController("test")public interface TestDao extends AbsDao {}

好了,大功告成...现在启动项目就可以访问关于TestData的Crud操作了..

访问的API前缀为 /crud/{在CrudController中配置的名字}/操作

在此demo中CrudController注解配置的名字为 test,因此

可用的API为:

/crud/test/create 创建一个对象

/crud/test/delete 根据ID删除一个对象

/crud/test/update 根据ID更新一个对象

/crud/test/find 根据条件查询对象列表

/crud/test/count 根据条件统计有多少个对象

/crud/test/findById 根据ID查询对象

/crud/test/page 根据条件进行翻页查询

前端则可以根据这些API进行相应的CRUD操作啦...

什么觉得不够?

那在CrudController注解中可以添加around属性

@CrudController(value = "test",around = MethodAroundHandler.class)

只需要继承MethodAroundHandler类并覆盖里面的方法则可以实现自己的定制化查询...

所以上面图片中的创建API的输入进去的数据和创建出来的数据看起来不一样,就是因为再自定义的MethodAroundHandler类中覆盖了相关方法并进行了修改,所以才会出现输入的类容和实际创建的不一样.支持自定义的哦.

关于如何使用loyom-crud-spring-boot-starter构建CRUD后端API就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0