您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关如何使用loyom-crud-spring-boot-starter构建CRUD后端API,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
框架 loyom-crud-spring-boot-starter 是基于SpringBoot 的 Web和JPA 构建而成的,因此只支持SpringBoot的项目
首先:
我们先建立一个Java maven 项目. pom配置如下:
<?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>2.2.1.RELEASE</version> <relativePath/> </parent> <groupId>com.loyom</groupId> <artifactId>crud-demo</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.loyom</groupId> <artifactId>loyom-crud-spring-boot-starter</artifactId> <version>1.1.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>loyom-public</id> <name>loyom public</name> <url>http://oen.im/nexus/repository/maven-public/</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </snapshots> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> </repository> </repositories> </project>
因为框架jar并未发布到中央仓库,因此现使用
http://oen.im/nexus/repository/maven-public/
仓库地址
配置好了pom文件后再设置application.yml
server: port: 8080 session-timeout: 1800 connection-timeout: 5000 spring: 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: true logging: 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; @SpringBootApplication public 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, Long> { }
好了,大功告成...现在启动项目就可以访问关于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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。