十分钟快速启一个后端接口

171 阅读4分钟

分享一次使用Spring Boot来开发后端接口的操作步骤

先安装ideal,按照网络上的相关教程配置环境。接着按着下面的步骤跟着写,一步一步来,建议代码手写一遍,加深印象,同时也避免一些包引入带来的相关路径问题。

1.创建springboot项目

  1. 打开idea image.png

  2. 选择创建spring项目,注意填写自己的项目名 image.png

  3. 选择需要的依赖

  • 选择依赖:Spring WebMySQL DriverMyBatis MySql Deriver,JDBC API image.png 依赖选择完成之后,直接创建项目

ps:如果出现这个connection  out的报错,一看发现是gradle在build时超时了 image.png 解决方法如下:

image.png

https\://mirrors.cloud.tencent.com/gradle/gradle-7.5.1-bin.zip

项目创建成功,果然是这个问题。

image.png

第一次下载包比较慢,可以考虑使用镜像

2.启动并配置数据库

先安装navicat ,然后连接数据库

1.创建数据 image.png 2.创建表

image.png 3. 添加数据

image.png

3.修改文件名称

application.properties修改为application.yml

image.png

image.png application.yml中添加文件内容如下

server:

  port: 8085

spring:

  #???????

  datasource:

    driver-class-name: com.mysql.cj.jdbc.Driver

    url: jdbc:mysql://127.0.0.1:3306/dy_process?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC

    username: root

    password: 123456

mybatis:

  mapper-locations: classpath:mapper/*.xml

然后访问localhost:8085这个地址,出现以下界面表示启动成功 image.png

4. 新建controller包(控制层)

controller层: 负责请求转发,接收页面过来的参数,传给service处理,接到返回值,并再次传给页面。 image.png

建立UserController类,如下: image.png

image.png

UseController类中的代码如下:

建议自己敲一遍,不要盲目复制

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @RequestMapping("/getName")
    public String getName(){
        return "看到我就成功啦!";
    }

}
  • @RestController注解是Spring MVC中用于简化RESTful Web服务开发的一个特性。它不仅声明了该类是一个控制器,而且其所有方法的返回值都将直接作为HTTP响应的正文返回,无需通过视图解析器

  • @RequestMapping注解的主要功能是将客户端的请求映射到特定的处理器方法上。当Spring MVC接收到一个请求时,它会查找请求映射,并调用相应的处理器方法来处理这个请求。 访问地址,看到如下界面,说明成功了

image.png

5. 新建Animal类,生成getter、setter,构造函数

image.png

image.png image.png

给前端返回Aminal对象类型

image.png 结果如下:

image.png

6. 新建一个entity(实体类)

Entity层,顾名思义就是实体层,放置一个个实体,及其相应的set、get方法。如果想要对数据库进行一些操作(比如说读取)的话,就要先写entity层。

entity下编写一个User类 image.png

7. 新建一个mapper(数据访问层)

mapper层:数据存储对象,相当于DAO层,mapper层直接与数据库打交道(执行SQL语句),接口提供给service层。

新建一个Mapper包,在Mapper包下新建一个UserMapper

image.png

image.png

  • @Mapper: 这个注解一般使用在Dao层接口上,相当于一个mapper.xml文件,它的作用就是将接口生成一个动态代理类。加入了@Mapper注解,目的就是为了不再写mapper映射文件。这个注解就是用来映射mapper.xml文件的。

  • 使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中

8. 新建mapper文件夹,在文件夹下建立一个UserMapper.xml文件

这里的mapper 定义MyBatis框架中的映射关系的 image.png

image.png UserMapper.xml文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//dtd Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.springdemo.mapper.UserMapper">
<!--org.example.springdemo.entity.User-->
    <select id="findAll" resultType="org.example.springdemo.entity.User">
        SELECT * FROM user
    </select>
</mapper>

image.png

image.png

9.新建一个service包,处理业务逻辑(业务逻辑层)

在包里新建一个类,这里进行业务逻辑处理,而这里没有进行处理,直接将mapper的结果进行返回

service:服务层
由于Dao里面存放了对表操作的方法,entity类中存放了映射表的POJO类。Service的作用就是将Dao和entity类整合起来,进行再次封装,封装成一个方法,我们调用这个方法,就实现了对某个表的增删改查操作

image.png

@Service注解 用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。

10.在controller里面返回结果给前端

注意下面三个框框,框起来的地方 image.png

测试结果如下: image.png

最后的项目目录如下,可以参考

├─.gradle
│  ├─7.5.1
│  │  ├─checksums
│  │  ├─dependencies-accessors
│  │  ├─executionHistory
│  │  ├─fileChanges
│  │  ├─fileHashes
│  │  └─vcsMetadata
│  ├─buildOutputCleanup
│  └─vcs-1
├─.idea
├─bin
│  ├─main
│  │  ├─mapper
│  │  ├─org
│  │  │  └─example
│  │  │      └─springdemo
│  │  │          ├─controller
│  │  │          ├─entity
│  │  │          ├─mapper
│  │  │          └─service
│  │  └─templates
│  └─test
│      └─org
│          └─example
│              └─springdemo
├─build
│  ├─classes
│  │  └─java
│  │      └─main
│  │          └─org
│  │              └─example
│  │                  └─springdemo
│  │                      ├─controller
│  │                      ├─entity
│  │                      ├─mapper
│  │                      └─service
│  ├─generated
│  │  └─sources
│  │      ├─annotationProcessor
│  │      │  └─java
│  │      │      └─main
│  │      └─headers
│  │          └─java
│  │              └─main
│  ├─resources
│  │  └─main
│  │      ├─mapper
│  │      ├─static
│  │      └─templates
│  └─tmp
│      └─compileJava
├─gradle
│  └─wrapper
└─src
    ├─main
    │  ├─java
    │  │  └─org
    │  │      └─example
    │  │          └─springdemo
    │  │              ├─controller
    │  │              ├─entity
    │  │              ├─mapper
    │  │              └─service
    │  └─resources
    │      ├─mapper
    │      ├─static
    │      └─templates
    └─test
        └─java
            └─org
                └─example
                    └─springdemo