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

分享一次使用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
相关推荐
天天摸鱼的java工程师4 分钟前
Java行业现状观察:一二三线城市不同命运下的代码人生
后端
AI小智10 分钟前
【LangChain 团队重磅实测报告】多智能体架构揭秘:谁才是性能之王?
后端
京东云开发者14 分钟前
工作中对InheritableThreadLocal使用的思考
后端
程序员阿斌哥21 分钟前
记录一次jenkins slave因为本地安装多个java版本导致的问题
java·jenkins
不骞28 分钟前
2. Solidity 基础:hello world- remix 编辑器
后端
37手游后端团队31 分钟前
AI祛魅:从“计算24点”看大模型的局限性与真实能力
人工智能·后端·openai
张哈大33 分钟前
【 java 虚拟机知识 第二篇 】
java·开发语言·jvm·笔记
武子康35 分钟前
大数据-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
大数据·后端
知其然亦知其所以然35 分钟前
只会写 Mapper 就想进大厂?MyBatis 原理你真懂了吗?
java·后端·面试
九月十九43 分钟前
java操作word里的表格
java·word