spring boot+vue全栈开发实战 pdf 下载_spring+vue全栈开发实战-第七章构建 RESTful 服务-0307-2020...

v2-7fba7e0380481109fa430dd3b81358ac_1440w.jpg?source=172ae18b
1、REST 简介 2、JPA 实现 REST

1、REST 简介

REST 是一种 Web 软件架构风格,它是一种风格,而不是标准,匹配或兼容这种架构风格的网络服务称为REST 服务。REST服务简洁并且有层次,REST通 常基于 HTTP、URL和 XML 以及 HTML 这些现有的广泛流行的协议和标准。在 REST 中,资源是 由 URL来指定的,对资源的增删改查操作可以通过 HTTP 协议提供的 GET、 POST、 PUT、 DELETE 等方法实现。 在前后端分离项目中, 一个设计良好的 Web 软件架构必然要满足 REST 风格。

2、JPA 实现 REST

在 Spring Boot 中,使用 Spring Data JPA 和 Spring Data Rest 可以快速开发出一个 RESTful 应 用 。

创建项目?

创建 Spring Boot 项目,添加如下依赖:

                <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>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.9</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

项目创建完成后, 在 application.properties 中配置基本的数据库连接信息

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.url=jdbc:mysql:///jparestful
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database=mysql
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.show-sql=true

创建实体类 ?

package com.zrq.Bean;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity(name = "t_book")
public class BookRestful{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private String author;
    //省略getter/setter

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", author='" + author + ''' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }
}

创建 BookRepository?

package com.zrq.repository;

import com.zrq.Bean.BookRestful;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
//import org.springframework.data.rest.core.annotation.RepositoryRestResource;
//import org.springframework.data.rest.core.annotation.RestResource;
import org.springframework.web.bind.annotation.CrossOrigin;

import java.util.List;
import com.zrq.Bean.BookRestful;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * 创建PersonRepository继承JpaRepository,JpaRepository默认提供了一些基本
 * 的操作方法.(基本的增删改查分页查询方法)
 *
 * 方法体什么都不用写,用Postman测试即可.
 */
public interface BookRepository extends JpaRepository<BookRestful,Integer> {

}

JpaRepository 中默认提供了一些基本的操作方法,

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package org.springframework.data.jpa.repository;

import java.util.List;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Sort;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.QueryByExampleExecutor;

@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
    List<T> findAll();

    List<T> findAll(Sort var1);

    List<T> findAllById(Iterable<ID> var1);

    <S extends T> List<S> saveAll(Iterable<S> var1);

    void flush();

    <S extends T> S saveAndFlush(S var1);

    void deleteInBatch(Iterable<T> var1);

    void deleteAllInBatch();

    T getOne(ID var1);

    <S extends T> List<S> findAll(Example<S> var1);

    <S extends T> List<S> findAll(Example<S> var1, Sort var2);
}

可以看到,基本的增删改查、分页查询方法 JpaRepository 都提供了

测试?

经过如上几步,一个RESTful服务就构建成功了,可能有读者会问“什么都没写呀 ! ”,是 的,这就是 Spring Boot 的魅力所在。 RESTful 的测试首先需要有一个测试工具,可以直接使用浏览器中的插件,例如 Firefox 中的 RESTClient,或者直接使用 Postman 等工具,笔者这里是使用 Postman 测试的。

v2-abf10befa28082a20e42df2d3c4f8d8d_b.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值