快速构建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>