美文网首页
SpringBoot系列:1.快速搭建web api项目

SpringBoot系列:1.快速搭建web api项目

作者: dothetrick | 来源:发表于2020-10-26 22:57 被阅读0次

    内容概述

    SpringBoot最常见得用途就是web api项目。

    本文介绍使用自动配置功能,通过最简洁的pom依赖,快速搭建一个示例项目。

    实现的功能为:接收http请求并返回json格式的数据。

    1. 需要的pom依赖

    SpringBoot的一大特色就是自动配置,通过自动配置,可以极大简化pom.xml,和代码量。

    一个简单的web api项目需要的功能是:处理http请求,读写mysql。
    在实际项目中,基本都会使用mysql连接池和sql解析工具,提高性能和开发效率。这里使用了druid + mybatis-plus

    按照约定,自动配置的包名称一般包含starter。本项目中使用的starter如下:

    • web的starter,包括对tomcat的自动配置,因为项目中使用了Springboot的parent,所以这里不用指定版本
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    • druid的starter,用来自动配置连接池,用于mysql的连接
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.1</version>
    </dependency>
    
    • mybatis-plus的starter,用来加载mapper类等依赖
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.1</version>
    </dependency>
    

    2. 配置信息

    使用自动配置时,一般通过SpringBoot的配置文件application.yml,自定义各种参数。
    本项目中用到的配置为mysql连接信息web项目启动端口,具体如下:

    spring:
      datasource:
        druid:
          url: jdbc:mysql://localhost:3306/test_db?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
          username: root
          password: 123456
    
    server:
      port: 8999
    
    • 通过使用druid-spring-boot-starter,启动时会根据mysql配置,自动生成连接,用于mysql访问。
    • port指定web访问的端口,api项目中通常会选择非80端口

    3. 代码说明

    为了提高开发效率,项目中使用mybatis-plus-generator,生成读写表所需的entity,mapper和service类。

    为了与前端开发更有效的配置,通常web api项目中会使用一个统一返回类来控制返回值格式,保证接口返回的格式统一。

    除了生成的代码外,项目中只需要实现统一格式类CommonResVo,和控制器类UserController即可提供api访问,目录如下:

    alt

    源码地址 ,https://gitee.com/dothetrick/web-demo/tree/most-simple/

    以上内容属个人学习总结,如有不当之处,欢迎在评论中指正

    相关文章

      网友评论

          本文标题:SpringBoot系列:1.快速搭建web api项目

          本文链接:https://www.haomeiwen.com/subject/wrozmktx.html