01. SpringBoot4零基础入门实战

7459 字约 15 分钟读完745 次阅读

需要学习基础吗?

需要但是不多。JavaSE 稍微看下就可以了,了解数据类型、类和对象、List、Map 等数据结构即可

安装软件

MySQL 的密码设置为 123456


maven 的 settings.xml 配置:

D:\soft\apache-maven-3.8.1\repo

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

公众号:程序员青戈,回复:软件

新建项目

选择 web、jpa、mysql、lombok

编码配置

配置 maven

精简项目

新建数据库

查看本地的 Mysql 服务

IDEA 连接 MySQL 服务

springboot_vue

配置 application.yml

数据库

# 配置数据库
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    # springboot_vue 是你项目的数据库名称  可以替换
    url: jdbc:mysql://localhost:3306/springboot_vue?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root    # 数据库账号
    password: 123456  # 数据库密码

输入 http://localhost:8080/ 访问

端口

server:
  port: 9090  # 项目端口号

写一个测试接口

@RestController
public class WebController {

    @GetMapping("/")
    public String index() {
        return "Hello 青哥哥";
    }

}

封装统一返回结果

package com.example.common;

import lombok.Data;

@Data
public class Result {
    private static final String SUCCESS_CODE = "200";
    private static final String ERROR_CODE = "500";

    private String code;
    private String msg;
    private Object data;

    public static Result success() {
        Result result = new Result();
        result.setCode(SUCCESS_CODE);
        result.setMsg("请求成功");
        return result;
    }

    public static Result success(Object data) {
        Result result = success();
        result.setData(data);
        return result;
    }

    public static Result error(String msg) {
        Result result = new Result();
        result.setCode(ERROR_CODE);
        result.setMsg(msg);
        return result;
    }

    public static Result error(String code, String msg) {
        Result result = error(msg);
        result.setCode(code);
        return result;
    }

}

配置 Lombok(非常重要)

连接数据库查询数据

创建数据库表 admin

CREATE TABLE `admin` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像',
  `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '角色',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `username` (`username`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='管理员信息';

orm 框架 jpa 配置

  # 配置 jap方言
  jpa:
    database-platform: org.hibernate.dialect.MySQLDialect
    hibernate:
      ddl-auto: none  # 手动创建数据库
    show-sql: true

打印 sql 配置

  # 美化打印sql
  jpa:
    database-platform: org.hibernate.dialect.MySQLDialect
    hibernate:
      ddl-auto: none  # 手动创建数据库
    show-sql: true

分层 controller、service、repository

@RestController
@RequestMapping("/admin")
public class AdminController {
    
}

service

@Service
public class AdminService {
    
}

repository

@Repository // 标记为一个仓库组件
public interface AdminRepository extends JpaRepository<Admin, Integer> {

}

测试接口

http://localhost:9090/admin/findAll

配置 swagger 接口文档

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.8.5</version>
</dependency>

核心配置

package com.example.common;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Swagger文档配置
 */
@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("Spring Boot 4 API接口文档")
                        .version("1.0.0")
                        .description("本文档涵盖了所有模块的接口说明")
                        .contact(new Contact().name("程序员青戈").url("https://codenice.cn")));
    }

}

http://localhost:9090/swagger-ui.html

一键三连支持一波~