Java springboot接口迅速上手,带你半小时极速入门

目录
  • 前期准备:
  • 步骤一:建立实体类,需要跟数据库表字段保持一致
  • 步骤二:建立mapper接口,定义要操作的数据库的动作
  • 步骤三:建立mapper的xml文件,写具体的sql语句
  • 步骤四:建立service类,处理业务逻辑
  • 步骤五:在controller类中展示处理结果
  • 验证
  • 总结

如何通过springboot来写一个简单的接口?

想要知道怎么写可能只需要几步,半小时足矣

本篇文章只是教大家如何快速地使用

但是具体是为什么这样用?以及背后的原理,请大家先认真学习javaweb-servlet-ssm框架等等,这里就不做过多的讲解。

前期准备:

首先在idea中新建项目:

new project-spring initializr一路next(如有需要修改的信息,也可以自己修改,不重要)

注意,这里要记得选上,作用是在初始化的时候,需要那些东西idea就帮你初始化进去(当然,后期也能自己手动加,但是这里为了方便学习,还是该选的都选上)

  • developer tools —spring boot devtools

  • web —spring web

  • SQL—jdbc api—mysql driver —mybatis framework

最后选完了,确保,右边栏selected dependencies为如下:

再一路next。。等待加载完成

再在MySQL数据库中准备一个student表:

接着,把src\main\resources中的application.properties文件改名成application.yml,这是因为yml文件的结构比较清晰,好看易懂

application.yml文件是一个配置文件,作用是可以配置一些数据库信息,他来告诉springboot我们的数据库账号密码呀,表名是啥等等。

以下是我的application.yml,你们可以根据自己的实际情况修改对应的信息:

server:
  port: 8081
spring:
  #数据库连接配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dt55?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    username: root
    password: 888888
#mybatis的相关配置
mybatis:
  #mapper配置文件
  mapper-locations: classpath:mapper/*.xml

验证先前配置是否成功:点开src\main\java\com\wzy\demo\DemoApplication.java

点击箭头所指的运行按钮:

若控制台出现:

并且在浏览器中输入http://localhost:8081/会出现:

则代表配置成功

步骤一:建立实体类,需要跟数据库表字段保持一致

在src\main\java\com\wzy\demo目录下新建一个名为entity包

再在entity包下,新建一个名为Student的class,这个Student即为实体类,该实体类即对应数据库中的表,类中的属性与数据库字段保持一致,并且加上构造函数以及get、set方法:

public class Student {
    private int id;
    private String name;
    private int age;
    private String hobby;
    private String address;
    public Student(int id, String name, int age, String hobby, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.hobby = hobby;
        this.address = address;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getHobby() {
        return hobby;
    }
    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

步骤二:建立mapper接口,定义要操作的数据库的动作

操作的数据库的动作比如:查询、更新、删除等等

这些动作就是mapper

在src\main\java\com\wzy\demo目录下新建一个名为mapper包

再在mapper包下,新建一个接口StudentMapper

又因为,数据库中的一行数据就对应着一个对象

这里假设,我们想要找到所有的学生信息。

@Mapper
public interface StudentMapper {
    List<Student> findAllStudent();
}

步骤三:建立mapper的xml文件,写具体的sql语句

再在resources目录下建立一个名为mapper的包,并且在mapper的包下新建一个名为StudentMapper.xml的文件。这个文件就是告诉java具体要写哪些sql语句。

<?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="com.wzy.demo.mapper.StudentMapper">
    <select id="findAllStudent" resultType="com.wzy.demo.entity.Student">
        SELECT * FROM student
    </select>
</mapper>

注意,这里的namespace就是指向哪一个mapper

id是mapper里面的方法名,resultType就是返回的类型

这里与前文中application.yml的mapper-locations相对应

步骤四:建立service类,处理业务逻辑

步骤三已经得到了数据了,但是展示给前端时,需要根据自己的业务逻辑对数据进行进一步的加工,所以这里在src\main\java\com\wzy\demo下建立service包,并且在service包中,新建一个StudentService类,此类的作用是处理相应的业务逻辑

//@Service的意思是将其实例化,
//之前如果有一个class,是不是需要new一个对象才可以用,
//这里就可以理解成会自动帮你new,new完了之后,将实例加到了spring容器当中
@Service
public class StudentService {
    //引进StudentMapper,@Autowired的意思就是将其实例化,通过autowired从spring容器中拿出来,供我们使用
    @Autowired
    private StudentMapper studentMapper;
    //处理业务逻辑,这里由于业务过于简单,就空着,查询出什么我就返回什么
    public List<Student> findAllStudent() {
        return studentMapper.findAllStudent();
    }
}

步骤五:在controller类中展示处理结果

在src\main\java\com\wzy\demo下建立controller包,并且在controller包中,新建一个StudentController类,此类的作用是将信息传到前端,就是负责给浏览器返回相应的数据。

//@RestController会自动帮一个对象转换成json的格式
@RestController
public class StudentController {
    @Autowired
    private StudentService studentService;
    //@RequestMapping("/getstudent")的意思告诉前端相应的地址访问
    @RequestMapping("/getstudent")
    public List<Student> getStudent(){
        return studentService.findAllStudent();
    }
}

验证

浏览器输入:http://localhost:8081/getstudent

出现数据库相关信息,试验成功

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Spring Boot接口限流的常用算法及特点

    前言 在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用. 那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了.通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的.本篇文章将会介绍一下常用的限流算法以及他们各自的特点. 算法介绍 计数器法 计数器法是限流算法里最简单也是最容易实现的一种算法.比如我们规定,对于A接口来说,我们1分钟的访问次数不能超过100个.

  • SpringBoot可视化接口开发工具magic-api的简单使用教程

    目录 magic-api简介 使用 在SpringBoot中使用 增删改查 参数验证 结果转换 使用事务 集成Swagger 总结 参考资料 magic-api简介 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller.Service.Dao.Mapper.XML.VO等Java对象. 使用 下面我们来波实战,熟悉下使用magic-api来开发API接口. 在SpringBoot中使用 m

  • Spring Boot 接口参数加密解密的实现方法

    因为有小伙伴刚好问到这个问题,松哥就抽空撸一篇文章和大家聊聊这个话题. 加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和响应数据.不过 SpringMVC 中给我们提供了 ResponseBodyAdvice 和 RequestBodyAdvice,利用这两个工具可以对请求和响应进行预处理,非常方便. 所以今天这篇文章有两个目的: 分享参数/响应加解密的思路. 分享 Response

  • Vue+Springboot实现接口签名的示例代码

    1.实现思路 接口签名目的是为了,确保请求参数不会被篡改,请求的数据是否已超时,数据是否重复提交等. 接口签名示意图 客户端提交请求时,将以下参数按照约定签名方式进行签名,随后将参数和签名一同提交服务端: 1.请求头部分(header) appid:针对不同的调用方分配不同的appid. noce:请求的流水号,防止重复提交. timestamp:请求时间戳,验证请求是否已超时失效. 2.数据部分 Path:按照path中的参数将所有key=value进行拼接. Query:按照所有key=va

  • springboot通过注解、接口创建定时任务详解

    目录 springboot中定时任务的创建 springboot通过注解创建定时任务 首先引入pom 直接上代码来一个栗子 @Scheduled注解的各个参数 springboot通过注接口创建定时任务 实现接口SchedulingConfigurer 主要方法 总结 项目中经常会用到定时任务,有的人在用quartz,有的人可能自己搭建了一套调度平台,springboot对于定任务的支持,让定时任务的创建变得简单,今天来说说springboot中定时任务的创建. springboot中定时任务的

  • SpringBoot接口调用之后报404问题的解决方案

    我的接口是这样的: TestCase测试Impl类的方法没有问题,但是Swgger和前端调用接口就会报404错误: 在网上查了很多资料,都说是地址的问题,我参照了上下文 server.port中的端口没问题,我本地的IP也没问题,上下文也没问题,总之地址没问题. 之后看了我接口的注解,我的Controller类用的注解是@RestResultController,而不是@RestController. 使用@RestResultController,如果返回值是String类型就存在指向性问题,

  • Java springboot接口迅速上手,带你半小时极速入门

    目录 前期准备: 步骤一:建立实体类,需要跟数据库表字段保持一致 步骤二:建立mapper接口,定义要操作的数据库的动作 步骤三:建立mapper的xml文件,写具体的sql语句 步骤四:建立service类,处理业务逻辑 步骤五:在controller类中展示处理结果 验证 总结 如何通过springboot来写一个简单的接口? 想要知道怎么写可能只需要几步,半小时足矣 本篇文章只是教大家如何快速地使用. 但是具体是为什么这样用?以及背后的原理,请大家先认真学习javaweb-servlet-

  • springboot 接口返回字符串带引号的问题解决

    目录 框架版本 问题 排查 问题所在 解决方法 参考资料 框架版本 springboot 2.2.1.RELEASEfastjson 1.2.78 maven pom.xml parent 和 dependencies <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <versio

  • Java SpringBoot 获取接口实现类汇总

    目录 前言 一.获取接口的所有实现类 1.枚举 2.业务接口 2.1 实现类 3.ApplicationContextAware接口实现类 4.获取到所有实现类使用 前言 有时候,根据业务逻辑的需求,需要获取到某个接口的所有实现类,然后根据业务类型来执行不同的实现类方法.有点类似策略模式. 如果没有用到 Spring的话,可以使用 ServiceLoaderl类JDK自带的一个类加载器(其他框架的SPI机制也是可以实现). ServiceLoader<MyInterface> loader =

  • 五分钟带你了解Java的接口数据校验

    本篇文章给大家分享平时开发中总结的一点小技巧!在工作中写过Java程序的朋友都知道,目前使用Java开发服务最主流的方式就是通过Spring MVC定义一个Controller层接口,并将接口请求或返回参数分别定义在一个Java实体类中,这样Spring MVC在接收到Http请求(POST/GET)后,就会自动将请求报文自动映射成一个Java对象.这样的代码通常是这样写的: @RestController public class OrderController { @Autowired pr

  • java、springboot 接口导出txt方式

    目录 java.springboot 接口导出txt 就写两个方法 Springboot 文件处理导入导出 后台导入 前台导入 前台导出 总结:本篇主要记录了 java.springboot 接口导出txt 就写两个方法 @Log @ApiOperation(value = "导出单码/箱码",produces = "application/octet-stream") @GetMapping(value = "/export") public

  • SpringBoot接口接收json参数解析

    目录 SpringBoot接口接收json参数 前言 前提 一.GET 二.DELETE 三.POST/PUT/PATCH Springboot restFul 参数检验 概述 常用注解 简单应用举例 自定义校验 抛出BindException而非MethodArgumentNotValidException SpringBoot接口接收json参数 前言 通常来讲,HTTP 方法会映射为 CRUD 动作,但这并不是严格的限制,有时候 PUT 也可以用来创建新的资源,POST 也可以用来更新资源

  • java springboot中如何读取配置文件的属性

    目录 配置文件 (1)使用注解@Value映射 (2)使用@ConfigurationProperties映射 (3)推荐使用:极简方式 @Bean和@ConfigurationProperties注解一起使用, @RequiredArgsConstructor注解实现自动注入 总结 我们知道在比较大型的项目的开发中,比较经常修改的属性我们一般都是不会在代码里面写死的,而是将其定义在配置文件中,之后如果修改的话,我们可以直接去配置文件中修改,那么在springboot的项目中,我们应该如何实现这

  • 解决Vue调用springboot接口403跨域问题

    最近在做一个前后端分离的项目, 前端用的是Vue后端使用的是springboot, 在项目整合的时候发现前端调用后端接口报错403跨域请求问题 前端跨域请求已解决, 那么问题就出在后端了, 找了一些资料找到了很多种方法, 这里说两个简单粗暴的. 注意:"@CrossOrigin"注解要求jdk1.8及以上版本, SpringMVC 4.2及以上版本 1. 在controller层上添加@Configuration注解, 如果没有效果请制定RequestMapping总的method类型

  • 详解Java Callable接口实现多线程的方式

    在Java 1.5以前,创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口.无论我们以怎样的形式实现多线程,都需要调用Thread类中的start方法去向操作系统请求io,cup等资源.因为线程run方法没有返回值,如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦. 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果. Callable和Future介

  • Java的接口调用时的权限验证功能的实现

    提示:这里可以添加本文要记录的大概内容: 例如:一般系统前端调用后台相关功能接口时,需要验证此时用户的权限是否满足调用该接口的条件,因此我们需要配置相应的验证权限的功能. 提示:以下是本篇文章正文内容,下面案例可供参考 一.编写的环境 工具:IDEA 框架:GUNS框架(自带后台权限验证配置,我们这里需要编写前端权限验证配置) 二.使用步骤 1.配置前端调用的接口 代码如下(示例): 在WebSecurityConfig中: // 登录接口放开过滤 .antMatchers("/login&qu

随机推荐