当前位置: 首页 > news >正文

快速构建SpringBoot项目

快速构建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、访问效果

在这里插入图片描述

相关文章:

快速构建SpringBoot项目

快速构建SpringBoot项目 下文将简述如何快速构建一个SpringBoot项目&#xff0c;使用SpringData JPA实现持久层访问&#xff0c;集成lombok、swagger2及集成thymeleaf进行页面展示。 准备环境&#xff1a; JDK版本&#xff1a;jdk17 IntelliJ IDEA版本&#xff1a; 2023.2.7…...

架构设计笔记-14-云原生架构设计理论与实践

知识要点 云原生&#xff08;Cloud Native&#xff09;架构原则&#xff1a; 服务化原则&#xff1a;通过微服务架构&#xff0c;小服务&#xff08;MiniService&#xff09;架构把不同生命周期的模块分离出来&#xff0c;分别进行业务迭代&#xff0c;避免迭代频繁模块被慢速…...

leetcode hot100 之【LeetCode 206. 反转链表】 java实现

LeetCode 206. 反转链表 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#x…...

基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)

操作系统&#xff1a;Windows Java开发包&#xff1a;JDK1.8 项目管理工具&#xff1a;Maven3.6.0 项目开发工具&#xff1a;IntelliJIDEA 数据库&#xff1a;MySQL Spring Cloud版本&#xff1a;Finchley.SR2 Spring Boot版本&#xff1a;2.0.6.RELEASE 目录 用户模块—user-…...

Spring Boot + Vue 前后端分离项目总结:解决 CORS 和 404 问题

Spring Boot Vue 前后端分离项目总结&#xff1a;解决 CORS 和 404 问题 在进行前后端分离的项目开发中&#xff0c;我们遇到了几个关键问题&#xff1a;跨域问题 (CORS) 和 404 路由匹配错误。以下是这些问题的详细分析和最终的解决方案。 问题描述 跨域请求被阻止 (CORS) 当…...

JVM篇(学习预热 - JVM正式展开 - (实战课程学习总结))(持续更新迭代)

目录 感觉也看了这么多&#xff0c;说一些乱七八糟的内容&#xff0c;完全没有实质的收获&#xff0c;那么现在让我们正式来预热下JVM 吧&#xff1f; 一、程序的执行方式 二、为什么使用 JVM 三、字节码和机器码的区别 四、JDK、JRE与JVM的关系 五、OracleJDK和OpenJDK …...

WebGL编程指南 - 入门续

相关内容&#xff1a;在attribute变量传递参数的基础上&#xff0c;通过JavaScript获取鼠标事件的坐标&#xff0c;再经过坐标转换传递给attribute变量&#xff1b;Web颜色缓冲区每次绘制之后都会重置相关函数&#xff1a;JavaScript鼠标事件onmousedown/onmouseup/onclick htm…...

EPS导出DWG存在地物缺失或者没有编码属性的情况

问题描述 使用eps导出dwg时&#xff0c;打开dwg会发现部分地物缺失或者没有编码属性。 这里就是一片空白&#xff1a; 解决办法 1 查看eps的图层信息&#xff0c;发现图层没有对应上&#xff0c;故此地物编码也是没有的。 2 可以右键全选本编码对象&#xff0c;实现批量快…...

跨境业务收款难?Zoho Books来帮忙

外贸跨境企业应收账款管理繁琐&#xff0c;ZohoBooks财务管理软件提供自动化解决方案&#xff0c;简化开票、跟进、收款和账户更新流程&#xff0c;提升效率和准确性&#xff0c;助力企业优化现金流和财务健康。 什么是应收账款&#xff1f; 应收账款指的是企业在提供商品或服…...

深入解析 Harris 角点检测算法:从孔径问题到响应函数的完整推导

在图像处理中&#xff0c;角点是非常重要的特征。为了快速、准确地检测角点&#xff0c;Harris 提出了 Harris 角点检测算法&#xff0c;它基于局部窗口内图像梯度的变化来判断角点。本文将从最基础的孔径问题&#xff08;Aperture Problem&#xff09;入手&#xff0c;通过泰勒…...

抖音视频制作怎么暂停画面,抖音视频怎么让它有暂停的效果

千万别滥用视频特效&#xff0c;不然它能毁掉你的抖音作品。在创作过程中&#xff0c;应尽量使用类似暂停画面、隐形字幕这样的视觉特效&#xff0c;可以显著提高作品的视觉体验。增强视频表现力的同时&#xff0c;也不会让画面看起来过于夸张。有关抖音视频制作怎么暂停画面的…...

Android GPIO方式解码红外数据

1 红外遥控协议 1.1 基本概念 1&#xff09;NEC协议&#xff0c;采用PWM方式调制。38KHz载波&#xff0c;一般是由引导码地址码地址反码数据数据反码构成。 遥控接收头端收到的信号为&#xff1a;逻辑1是560us低1680us高&#xff0c;逻辑0是560us低560us高。 地址&#xff1a;u…...

基于SpringBoot+Vue的益农智慧服务平台【提供源码+答辩PPT+参考文档+项目部署】

一、项目技术架构&#xff1a; 本项目是一款SpringBoot益农平台的设计与实现。 该SpringBootVue的益农平台的设计与实现&#xff0c;后端采用SpringBoot架构&#xff0c;前端采用VueElementUI实现页面的快速开发&#xff0c;并使用关系型数据库MySQL存储系统运行数据。本系统分…...

基于springboot的在线考试与学习交流网页

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;…...

JS异步编程进阶(二):rxjs与Vue、React、Angular框架集成及跨框架状态管理实现原理

在现代前端开发中&#xff0c;异步操作已经成为不可或缺的一部分。无论是处理网络请求、响应用户输入&#xff0c;还是监听外部事件&#xff0c;异步编程模式始终占据重要位置。而RxJS作为功能强大的异步编程库&#xff0c;广泛应用于多个框架之中&#xff0c;如Vue、React、An…...

nginx web代理

目录 1.nginx的简单介绍 2.正向代理的应用场景 2.1做访问控制 2.2审计 2.3负载分散 2.4隐私保护和匿名性 3.反向代理的应用场景如下 3.1.负载均衡 2.缓存静态内容 3.压缩和优化内容 4.提供故障转移 5.安全性和匿名性 4.正向代理 4.1web端 4.2lb01代理服务器…...

人形机器人的关节控制

人形机器人的关节控制是机器人技术中的核心环节之一,它直接关系到机器人的运动灵活性、精确度和稳定性。 一、关节结构与设计 人形机器人的关节结构通常包括底座、内圈、外圈和滚珠等组件,这些组件共同构成了关节的旋转和支撑系统。关节的设计需要考虑到承载能力、稳定性以…...

python 爬虫 入门 二、数据解析(正则、bs4、xpath)

目录 一、待匹配数据获取 二、正则 三、bs4 &#xff08;一&#xff09;、访问属性 &#xff08;二&#xff09;、获取标签的值 &#xff08;三&#xff09;、查询方法 四、xpath 后续&#xff1a;登录和代理 上一节我们已经知道了如何向服务器发送请求以获得数据&#x…...

PTX 汇编代码语法

PTX&#xff08;Parallel Thread Execution&#xff09;汇编是 NVIDIA 为其 GPU 提供的一种并行指令集架构&#xff08;ISA&#xff09;&#xff0c;用于编写 GPU 设备代码。PTX 是一种中间表示&#xff08;IR&#xff09;&#xff0c;在 CUDA 代码编译时生成&#xff0c;之后会…...

【mysql】统计两个相邻任务/事件的间隔时间以及每个任务的平均用时

准备步骤1. 设置查询参数部分1.1 设置需要分析的起始时间1.2. 设置需要分析的时间的长度&#xff08;分析的结束时间&#xff09;1.3. 设置分析内容1.4. 设置需要分析的表和字段 2. 自动计算分析2.1 设置起始序号2.2. 筛选user_log表数据并生成带序号的临时表temp_ria2.3. 通过…...

SenseVoice实战:搭建智能客服语音质检系统,自动检测咳嗽清嗓等事件

SenseVoice实战&#xff1a;搭建智能客服语音质检系统&#xff0c;自动检测咳嗽清嗓等事件 在客服中心的质量检查工作中&#xff0c;质检人员每天需要监听大量通话录音&#xff0c;手动标记出咳嗽、清嗓等非语音事件。传统人工质检方式不仅效率低下&#xff0c;而且容易因疲劳…...

告别云端依赖:Qwen3-VL-8B本地图文对话工具快速上手教程

告别云端依赖&#xff1a;Qwen3-VL-8B本地图文对话工具快速上手教程 1. 为什么选择本地部署多模态模型&#xff1f; 在当今AI应用蓬勃发展的时代&#xff0c;越来越多的企业和开发者开始关注数据隐私和安全性。云端API虽然方便&#xff0c;但存在以下痛点&#xff1a; 数据安…...

解锁B站资源:DownKyi视频下载的7个实用维度

解锁B站资源&#xff1a;DownKyi视频下载的7个实用维度 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。 …...

IHaskell与Python对比分析:函数式编程在数据科学中的独特价值

IHaskell与Python对比分析&#xff1a;函数式编程在数据科学中的独特价值 【免费下载链接】IHaskell A Haskell kernel for the Jupyter project. 项目地址: https://gitcode.com/gh_mirrors/ih/IHaskell 在数据科学领域&#xff0c;选择合适的编程语言往往直接影响开发…...

LFM2.5-1.2B-Thinking-GGUF保姆级教程:Windows/Mac/Linux三平台本地部署

LFM2.5-1.2B-Thinking-GGUF保姆级教程&#xff1a;Windows/Mac/Linux三平台本地部署 1. 平台介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型&#xff0c;特别适合在资源有限的设备上快速部署和使用。这个模型采用了GGUF格式&#xff0c;配合llama.c…...

Qwen3-14B-Int4-AWQ辅助系统设计:从需求到UML类图与序列图的自动生成

Qwen3-14B-Int4-AWQ辅助系统设计&#xff1a;从需求到UML类图与序列图的自动生成 1. 系统设计的新助手 想象一下这样的场景&#xff1a;你刚开完需求讨论会&#xff0c;脑子里装满了各种功能模块和交互流程的构想。现在需要把这些想法转化为规范的UML设计文档&#xff0c;但手…...

SECS-II与HSMS核心区别解析

SECS-II与HSMS是SEMI&#xff08;国际半导体设备与材料协会&#xff09;制定的半导体设备通讯标准&#xff08;SECS&#xff09;协议族中的核心成员&#xff0c;它们在通信栈中扮演着截然不同但又紧密协作的角色。简单来说&#xff0c;SECS-II定义了通信的“内容”和“语义”&a…...

新手必看!手把手教你搭建微调大模型环境,附硬件配置与工具链教程

本文详细介绍了微调大模型的环境搭建与工具链配置&#xff0c;包括硬件要求&#xff08;不同模型所需显存及推荐显卡&#xff09;、核心依赖安装&#xff08;transformers、peft、bitsandbytes等&#xff09;、Hugging Face生态速览&#xff08;模型、数据集、Trainer&#xff…...

OpenClaw + Ollama 超时 500 错误排查与解决:调整上下文窗口与最大生成长度

一次因为模型参数配置不当引发的“跨设备推理慢如蜗牛”问题&#xff0c;最终通过降低 contextWindow 和 maxTokens 轻松搞定。背景 最近在一台轻薄本做测验&#xff0c; Windows 环境下折腾 OpenClaw 对接本地 Ollama 的 Qwen2.5:1.5B 模型。本以为小参数量模型跑起来毫无压力…...

在瑞芯微RK3568上,用Qt5+EGL实现零拷贝离屏渲染的完整避坑指南

瑞芯微RK3568嵌入式平台Qt5EGL零拷贝渲染实战解析 引言&#xff1a;嵌入式图形开发的性能瓶颈与突破 在瑞芯微RK3568这类嵌入式平台上开发图形应用时&#xff0c;开发者常常面临一个核心矛盾&#xff1a;既要满足复杂UI渲染的功能需求&#xff0c;又要兼顾有限的硬件资源。传统…...