最小化接口

2 阅读3分钟

前言

我一直在想,最小化接口是什么,思来想去还是想按照我理解的来写,什么是最小化,就好比一个页面,用最简单,最少的代码,来获取到数据,甚至不需要装饰。

image.png 就好比上面这张图,只需要右边的数据,其他全部都不需要考虑。

实现最小化接口思路

建立一个项目文件,里面用来存放模块

image.png

在项目文件中新建模块

image.png

如果没有jdk可以下载jdk,我这边用的是17,稳定而且版本较新,不会出现依赖冲突。

image.png image.png

因为是一个最小化接口,所以我就建立了一个模块,web模块,将所有的工作全部集中到一块了。

接着在main资源目录下新建一个resoures目录,用于存放资源配置文件,也就是跟数据库对接。

image.png

在资源目录下新建一个.yml格式的文件,用于配置连接数据库.一般叫启动配置,application.yml

spring:
  datasource:
    #数据库账号默认为root
    username: root
    #数据库密码
    password: root
    #carbon替换为你的架构名称,用于指定数据库当中的架构。
    url: jdbc:mysql://localhost:3306/carbon?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC


#启用驼峰命名,由于数据库当中的表的字段名一般会用到下划线比如user_name当启用了驼峰命名在java中定义字段属性就可以谢为userName。
mybatis:
  configuration:
    map-underscore-to-camel-case: true #启用驼峰命名

接着在java目录下的底层目录下新建一个启动类,一般命名为项目名称加上Application

image.png

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MinApplication {
    public static void main(String[] args) {
        SpringApplication.run(MinApplication.class, args);
        System.out.println("启动成功");
    }
}

建完以后会爆红,但是没关系,因为我们还没有引入mybatis-plus相关依赖 我们在项目文件找到最顶层的pom.xml文件,用于配置maven的依赖。 如果没有maven可以点击参考这里 配置好了以后就可以直接写入相关依赖 首先引用父依赖可以用于统一版本 写在

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.0</version>
  </parent>

直接在dependencies标签当中写入

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.0</version>
  </parent>

  <dependencies>
    <!-- Spring Boot Starter 依赖 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

    <!-- MyBatis-Plus 依赖 -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.5.3</version>
    </dependency>

    <dependency>
      <groupId>com.github.yulichang</groupId>
      <artifactId>mybatis-plus-join-boot-starter</artifactId>
      <version>1.5.2</version>
    </dependency>


    <!-- MySQL 驱动 -->
    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
    </dependency>

    <!-- Lombok 依赖 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.28</version>
      <scope>provided</scope>
    </dependency>

  </dependencies>


</project>

引入完以后记得重载一下,

image.png 我们的项目初始化就完成了,接着回到启动类启动试一试。

3.gif

可以看到启动成功了,接着我们就可以运用mybatis-plus的框架来调用数据库内容, 接着可以从数据库中直接生成类

4.gif 接着我们创建一个mapper,用于编写数据库的增删改查,当然,可以直接用mybatis-plus自带的增删改查方法帮我们省去了写sql语句的麻烦。

image.png 里面什么都不用写,因为我们什么都不考虑,只需要拿到数据就行。 然后写一个controller类,用于指定干什么方法,用户可以通过controller类里面的路径来访问到数据

image.png

@RestController
@RequestMapping("/test")
public class WmsController {
    @Autowired
    private WmsMapper wmsMapper;
    @RequestMapping
    public List<WmsMaterialInfo> list(){
        return wmsMapper.selectList(null);
    }
}

接着我们在网页测试,默认端口号是8080,使用本地ip即可访问127.0.0.1:8080/test

image.png 这样我们就拿到了数据,我们的一个最小化接口也就完成了。

结语

究竟什么才是最小化接口,我也不太明白,但是按照我理解的来看就是运用最少最简洁的代码来写一个接口。但是在中大型项目中,文件一旦多起来,就不得不创建多个模块来分工合作了,不然全部的代码放在一块,根本找不到要写的是哪一块了。java写代码的层次结构虽然复杂并且庞大,但是有利也有弊吧。