Spring Data Rest 项目的开发流程

作者: 右耳菌 | 来源:发表于2022-04-27 00:24 被阅读0次

一、创建Spring Boot 项目

二、修改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 https://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.6.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.lazyfennec</groupId>
    <artifactId>hello-spring-data-rest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>hello-spring-data-rest</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

三、创建application.properties

#数据库url地址
spring.datasource.url=jdbc:mysql://localhost:3306/cloud_study?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
#数据库用户名密码
spring.datasource.username=####替换账号
spring.datasource.password=####替换密码
#mysql的驱动类,也可以这样写:com.mysql.jdbc.Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#自动生成开启,让表数据会自动跟随entity类的变化而变化
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#方言选择mysql
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#开启sql打印
spring.jpa.show-sql=true
#开启sql格式化
spring.jpa.properties.hibernate.format_sql=true

四、配置数据库

第一步 第二步

五、创建文件夹

  • cn.lazyfennec.springdatarest.entity

六、逆向生成实体类

  • 找到左下角的Persistence并点击,如果找不到,请参考 : Spring Boot JPA 项目的创建并且根据数据库表生成类文件
  • 右键hello-spring-data-rest -> Generate Persistence Mapping -> By Database Schema
    修改参数
    • 删除prefix和suffix(表示生成的实体类不添加前缀和后缀)
    • 设置生成的实体类所在的包 cn.lazyfennec.jpa.entity
    • 选中要生成类的表,这里选择user
选中要生成类的表,这里选择user

七、修复@Column异常爆红

八、创建Repository

  • 注意增加注解 @RepositoryRestResource(path = "users")
package cn.lazyfennec.springdatarest.repository;

import cn.lazyfennec.springdatarest.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

/**
 * @Author: Neco
 * @Description:
 * @Date: create in 2022/4/26 23:58
 */
@RepositoryRestResource(path = "users")
public interface UserRepository extends JpaRepository<User, Integer> {
}

自此,后端的开发已基本完成,使用注解 @RepositoryRestResource 后无需创建controller

直接运行程序,GET访问http://localhost:8080/ 可以看到以下的信息

http://localhost:8080/

用户可以根据以下内容进行查询并且访问到相关的接口

九、如果有其他的接口需求

则需要在UserRepository中进行相关的接口编写, 如

package cn.lazyfennec.springdatarest.repository;

import cn.lazyfennec.springdatarest.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

/**
 * @Author: Neco
 * @Description:
 * @Date: create in 2022/4/26 23:58
 */
@RepositoryRestResource(path = "users")
public interface UserRepository extends JpaRepository<User, Integer> {
    User findByUserName(@Param("userName") String userName);
}

十、使用POST,Save & Update (全部替换,不会局部修改)

十一、使用PUT,Update (全部替换,不会局部修改)

十二、使用PATCH,Save & Update (局部修改,即对于没有传的数据不会置空,而是保留)

十三、使用DELETE

十四、Spring Data Rest 也同时支持普通的Controller的接口访问


更多知识,请点击关注查看我的主页信息哦~

相关文章

网友评论

    本文标题:Spring Data Rest 项目的开发流程

    本文链接:https://www.haomeiwen.com/subject/xuckyrtx.html