快速构建SpringBoot项目

时间:2024-10-15 07:15:36

快速构建SpringBoot项目

下文将简述如何快速构建一个SpringBoot项目,使用SpringData JPA实现持久层访问,集成lombok、swagger2及集成thymeleaf进行页面展示。

准备环境:

JDK版本:jdk17
IntelliJ IDEA版本: 2023.2.7
Idea 2023.7.2

1. File->New->Project

在这里插入图片描述

2、在新增页面输入项目名称、路径、包名、构建方式、JDK版本、Java版本。注意:构建方式一定要选择Maven

在这里插入图片描述

3、选择所需组件。SpringBoot版本不要选择SNAPSHOT快照版本。勾选后会在右侧Added dependencies中显示所选的组件

在这里插入图片描述
在这里插入图片描述

4、等待初始化完成

在这里插入图片描述

5、配置数据库信息

#应用的名称
spring:
  application:
    name: springBoot1
#数据库地址
  datasource:
    url: jdbc:mysql://localhost:3306/tea_data?severTimezone=UTC
#数据库用户名
    username: root
#数据库密码
    password: xu123
#数据库驱动
    driver-class-name: com.mysql.cj.jdbc.Driver
#控制台是否显示sql语句
  jpa:
    show-sql: true  
#sql语句格式化
    properties:
      hibernate:
        format_sql: true  #格式化sql语句
server:
  port: 8081  #web服务端口号
springdoc:
  swagger-ui.path: /swagger-ui.html

6、启动SpringBoot项目,已经集成了tomcat,也不需要war包

在这里插入图片描述

7、启动成功

在这里插入图片描述

8、引入lombok可省略get、set、tostring、构造方法简洁代码,在pom.xml中增加一下依赖

    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

9、新建mvc结构

在这里插入图片描述

(1) 新建实体类和数据映射类。@Data注解来源于lombok,可省略get/set方法和构造器、toString()方法

在这里插入图片描述
在这里插入图片描述

(2)持久层业务继承CrudRepository<TeaType,Integer> 第一个参数是实体类,第二个参数是主键的字段类型。CrudRepository已经实现了基础的增删查改操作。

package com.example.springboot1.teafunction.repository;

import com.example.springboot1.teafunction.pojo.TeaType;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 持久化接口
 */
@Repository
public interface TeaTypeRepository extends CrudRepository<TeaType,Integer> {
    /**
     * 通过类型查询
     * @param type
     * @return
     */
    @Query("from TeaType where type=:type")
    List<TeaType> queryListByType(String type);
}

(3) service层

在这里插入图片描述
在这里插入图片描述

(4) 编写Controller 返回对象

package com.example.springboot1.teafunction.pojo;
import lombok.Data;
import org.springframework.http.HttpStatus;
@Data
public class ResponseMessage<T> {
    private Integer code;
    private String message;
    private T obj;

    public ResponseMessage(Integer code, String message, T obj) {
        this.code = code;
        this.message = message;
        this.obj = obj;
    }

    public static <T> ResponseMessage succes(T data){
        return new ResponseMessage(HttpStatus.OK.value(),"success",data);
    }
}

集成swagger2 ,图形化管理接口

1.引入依赖

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

2.新增Swagger配置类

在这里插入图片描述

3.在配置文件中新增swagger访问地址

spring:
  application:
    name: springBoot1
#数据库地址
  datasource:
    url: jdbc:mysql://localhost:3306/tea_data?severTimezone=UTC
#数据库用户名
    username: root
#数据库密码
    password: xu123
#数据库驱动
    driver-class-name: com.mysql.cj.jdbc.Driver
#控制台是否显示sql语句
  jpa:
    show-sql: true
#sql语句格式化
    properties:
      hibernate:
        format_sql: true
server:
  port: 8081  # web端口号
springdoc:
  swagger-ui.path: /swagger-ui.html

4.编写Controller类。类上增加注解Tag(name=”该类功能”);方法上增加注解Operation(summary=”方法描述);参数上增加@Parameter解释参数含义及必填等信息

在这里插入图片描述

5.访问http://localhost:8081/swagger-ui/index.html#/

在这里插入图片描述

集成thymeleaf

1、 pom.xml 增加thymeleaf依赖

	<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2、 application.yml中增加thymeleaf配置.

注意是在spring下面与datasource同一级别

  thymeleaf:
    prefix: classpath:/templates/
    	    suffix: .html

4、 新增Controller

在这里插入图片描述

5、 新增teaType.html

html标签后面引入thymeleaf模板库xmlns:th=“http://www.thymeleaf.org”

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title th:text="${title}">Title</title>
</head>
<style>

    table {
        border-collapse: collapse;
        border: 1px solid black;
        width: 50%;
    }
    th, td {
        border: 1px solid #dddddd;
        padding: 8px;
        text-align: center;
    }

</style>
<body>
<h1>茶类清单</h1>
<table>
    <tr><th>茶类名称</th><th>类型</th></tr>
    <tr th:each="teaType:${teaTypes}">
        <td th:text="${teaType.teaName}"></td>
        <td th:text="${teaType.type}"></td>
    </tr>
</table>

</body>
</html>

6、访问效果

在这里插入图片描述