您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。