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

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

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

1.创建springboot项目

  1. 打开idea

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

  3. 选择需要的依赖

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

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

js 复制代码
https\://mirrors.cloud.tencent.com/gradle/gradle-7.5.1-bin.zip

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

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

2.启动并配置数据库

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

1.创建数据 2.创建表

3. 添加数据

3.修改文件名称

application.properties修改为application.yml

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

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这个地址,出现以下界面表示启动成功

4. 新建controller包(控制层)

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

建立UserController类,如下:

UseController类中的代码如下:

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

java 复制代码
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接收到一个请求时,它会查找请求映射,并调用相应的处理器方法来处理这个请求。 访问地址,看到如下界面,说明成功了

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

给前端返回Aminal对象类型

结果如下:

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

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

entity下编写一个User类

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

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

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

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

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

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

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

UserMapper.xml文件代码如下:

java 复制代码
<?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>

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

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

service:服务层

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

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

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

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

测试结果如下:

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

js 复制代码
├─.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
相关推荐
码路飞12 分钟前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
序安InToo15 分钟前
第6课|注释与代码风格
后端·操作系统·嵌入式
xyy12315 分钟前
C#: Newtonsoft.Json 到 System.Text.Json 迁移避坑指南
后端
洋洋技术笔记18 分钟前
Spring Boot Web MVC配置详解
spring boot·后端
JxWang0518 分钟前
VS Code 配置 Markdown 环境
后端
navms22 分钟前
搞懂线程池,先把 Worker 机制啃明白
后端
JxWang0522 分钟前
离线数仓的优化及重构
后端
Nyarlathotep011323 分钟前
gin01:初探gin的启动
后端·go
JxWang0523 分钟前
安卓手机配置通用多屏协同及自动化脚本
后端
JxWang0524 分钟前
Windows Terminal 配置 oh-my-posh
后端