Springboot项目基础配置:小白也能快速上手!
推荐文章
给软件行业带来了春天——揭秘Spring究竟是何方神圣(一)
给软件行业带来了春天——揭秘Spring究竟是何方神圣(二)
给软件行业带来了春天——揭秘Spring究竟是何方神圣(三)
给软件行业带来了春天——揭秘Spring究竟是何方神圣(四)
给软件行业带来了春天——揭秘Spring究竟是何方神圣(五)
创建项目
打开idea,新建一个项目。

选择springboot进行初始化。

勾选需要添加的依赖(也可后续在pom文件中进行添加也可)

点击完成,即可生成对应的项目。

导入依赖
打开pom.xml文件,可以看到目前项目的依赖配置

配置Application
将application文件更改为.yml格式(不改使用.properties格式也是可以的,看个人习惯)
server:port: 8080
spring:#解决SpringBoot2.6.0与swagger冲突问题【原因是在springboot2.6.0中将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser,导致出错,解决办法是切换回原先的AntPathMatcher】mvc:pathmatch:matching-strategy: ant_path_matcher#配置数据源datasource:#配置数据源类型type: com.zaxxer.hikari.HikariDataSource#配置数据库连接属性driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/testusername: rootpassword: xxxxxxhikari:connection-test-query: SELECT 1connection-timeout: 60000idle-timeout: 500000max-lifetime: 540000maximum-pool-size: 12minimum-idle: 10pool-name: GuliHikariPoolthymeleaf:#模板的模式,支持 HTML, XML TEXT JAVASCRIPTmode: HTML5#编码 可不用配置encoding: UTF-8#开发配置为false,避免修改模板还要重启服务器cache: false#配置模板路径,默认是templates,可以不用配置prefix: classpath:/static/jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8servlet:#设置文件上传上限multipart:max-file-size: 10MBmax-request-size: 100MB
mybatis-plus:configuration:#添加日志支持log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath*:/mapper/**/*.xml
连接数据库
连接数据库,填写数据库相应的信息,和application中的datasource数据源数据保持一致。

点击连接,信息无误后即可看到连接成功,数据库也出现在idea侧边栏中。

同时创建后续的测试数据

项目结构初始化
创建需要的mapper、service、cotroller包等
数据层(POJO)


POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。

创建entity包
public class test {private Integer id;private String user;private String password;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
数据访问层(Mapper)
Mapper模式通常是指对象-关系映射(ORM)中的组件。
它负责将领域对象和数据库表之间进行映射,实现数据的读取和写入。Mapper将数据库操作转换为对象操作,屏蔽了底层数据库的细节,使得开发人员可以使用面向对象的方式操作数据。
它可以处理对象与关系型数据库之间的转换,包括查询、插入、更新和删除等操作。
创建mapper接口
@Repository
@Mapper
public interface TestMapper {/*** 增加一条数据* @param tests 数据*/void add(test tests);/*** 删除一条数据* @param id 被删除数据的id*/void delete(Integer id);/*** 修改一条数据* @param tests 修改的数据*/void update(test tests);/*** 根据id去查询一条数据* @param id 查询的id*/test queryById(Integer id);/*** 查询全部数据* @return*/List<test> queryAll();}
创建mapper接口对应的xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.nolan.malls.mapper.TestMapper"><insert id="add" parameterType="com.nolan.malls.entity.test">insert into tb_test (id,user,password) values (#{id},#{user},#{password});</insert><update id="update" parameterType="com.nolan.malls.entity.test">update tb_test set id=#{id},user=#{user},password=#{password} where id=#{id};</update><select id="queryById" parameterType="integer" resultType="com.nolan.malls.entity.test">select * from tb_test where id=#{id};</select><select id="queryAll" resultType="com.nolan.malls.entity.test">select * from tb_test;</select><delete id="delete" parameterType="integer">delete from tb_test where id=#{id};</delete></mapper>
业务层(Service)
Service层:服务层
由于Dao里面存放了对表操作的方法,entity类中存放了映射表的POJO类。Service的作用就是将Dao和entity类整合起来,进行再次封装,封装成一个方法,我们调用这个方法,就实现了对某个表的增删改查操作。
Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
而Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。
创建service层

@Service
public class TestServiceImpl implements TestService {@Autowiredprivate TestMapper testMapper;@Overridepublic void add(test tests){testMapper.add(tests);}@Overridepublic void update(test tests){testMapper.update(tests);}@Overridepublic test queryById(Integer id){return testMapper.queryById(id);}@Overridepublic List<test> queryAll(){return testMapper.queryAll();}@Overridepublic void delete(Integer id){testMapper.delete(id);}}
public interface TestService {/*** 增加一条数据* @param tests 数据*/void add(test tests);/*** 删除一条数据* @param id 被删除数据的id*/void delete(Integer id);/*** 修改一条数据* @param tests 修改的数据*/void update(test tests);/*** 根据id去查询一条数据* @param id 查询的id*/test queryById(Integer id);/*** 查询全部数据* @return*/List<test> queryAll();}
控制层(Controller)
Controller
负责请求转发,接受页面传递过来的参数,根据参数的不同,是调用不同的Service层方法进行操作,操作完成后将返回结果传递给页面。
Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计
创建controller层

@Controller
@RequestMapping(value = "/test")
public class TestController {@Autowiredprivate TestService testService;@GetMapping@ResponseBodypublic String queryAll(){List<test> testList=testService.queryAll();return JSON.toJSONString(testList);}//使用了RestFull风格@GetMapping("/{id}")@ResponseBodypublic String query(@PathVariable(value = "id")Integer id){test tests=testService.queryById(id);List<test> testList = new ArrayList<>();testList.add(tests);return JSON.toJSONString(testList);}@PostMapping@ResponseBodypublic String add(@RequestBody test tests){testService.add(tests);return "添加成功";}@DeleteMapping@ResponseBodypublic String delete(@PathVariable("id") Integer id){testService.delete(id);return "删除成功";}@PutMapping@ResponseBodypublic String update(@PathVariable("id")Integer id,@RequestBody test test){test.setId(id);testService.update(test);return "修改完成";}}
测试项目
选择idea中自带的http client工具,进行测试请求。 
GET http://127.0.0.1:9080/test
Accept: application/json

至此,一个简单的Springboot项目就搭建完成了。

相关文章:
Springboot项目基础配置:小白也能快速上手!
推荐文章 给软件行业带来了春天——揭秘Spring究竟是何方神圣(一) 给软件行业带来了春天——揭秘Spring究竟是何方神圣(二) 给软件行业带来了春天——揭秘Spring究竟是何方神圣(三) 给软件行业带来了春天—…...
20240127在ubuntu20.04.6下配置whisper
20240131在ubuntu20.04.6下配置whisper 2024/1/31 15:48 首先你要有一张NVIDIA的显卡,比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡!】800¥ 2、请正确安装好NVIDIA最新的驱动程序和CUDA。可选安装! 3、配置whispe…...
C# 递归执行顺序
为了方便进一步理解递归,写了一个数字输出 class Program {static void Main(string[] args){int number 5;RecursiveDecrease(number);}static void RecursiveDecrease(int n){if (n > 0){Console.WriteLine("Before recursive call do : " n);Rec…...
go 实现暴力破解数独
一切罪恶的来源是昨晚睡前玩了一把数独,找虐的选了个最难的模式,做了一个多小时才做完,然后就睡不着了..........程序员不能受这委屈,今天咋样也得把这玩意儿破解了 破解思路(暴力破解加深度遍历) 把数独…...
go语言-字符串处理常用函数
本文介绍go语言处理字符串类型的常见函数。 ## 多行字符串 在 Go 中创建多行字符串非常容易。只需要在你声明或赋值时使用 () 。 str : This is a multiline string. ## 字符串的拼接 go // fmt.Sprintf方式拼接字符串 str1 : "abc" str2 : "def" …...
DevOps落地笔记-05|非功能需求:如何有效关注非功能需求
上一讲主要介绍了看板方法以及如何使用看板方法来解决软件研发过程中出现的团队过载、工作不均、任务延期等问题。通过学习前面几个课时介绍的知识,你的团队开始源源不断地交付用户价值。用户对交付的功能非常满意,但等到系统上线后经常出现服务不可用的…...
vs 撤销本地 commit 并保留更改
没想到特别好的办法,我想的是用 vs 打开 git 命令行工具 然后通过 git 命令来撤销提交,尝试之前建议先建个分支实验,以免丢失代码, git 操作见 git 合并多个 commit / 修改上一次 commit...
深度解读NVMe计算存储协议-1
随着云计算、企业级应用以及物联网领域的飞速发展,当前的数据处理需求正以前所未有的规模增长,以满足存储行业不断变化的需求。这种增长导致网络带宽压力增大,并对主机计算资源(如内存和CPU)造成极大负担,进…...
CHS_06.2.3.4_2+用信号量实现进程互斥、同步、前驱关系
CHS_06.2.3.4_2用信号量实现进程互斥、同步、前驱关系 知识总览信号量机制实现进程互斥信号量机制实现进程同步信号量机制实现前驱关系 知识回顾 各位同学 大家好 在这个小节中 我们要学习怎么用信号量机制来实现进程的同步互制关系 知识总览 那么 我们之前学习了互斥的几种软…...
Web实战丨基于Django的简单网页计数器
文章目录 写在前面Django简介主要程序运行结果系列文章写在后面 写在前面 本期内容 基于django的简单网页计数器 所需环境 pythonpycharm或vscodedjango 下载地址 https://download.csdn.net/download/m0_68111267/88795604 Django简介 Django 是一个用 Python 编写的高…...
mysql8安装基础操作(一)
一、下载mysql8.0 1.查看系统glibc版本 这里可以看到glibc版本为2.17,所以下载mysql8.0的版本时候尽量和glibc版本对应 [rootnode2 ~]# rpm -qa |grep -w glibc glibc-2.17-222.el7.x86_64 glibc-devel-2.17-222.el7.x86_64 glibc-common-2.17-222.el7.x86_64 gl…...
MIT6.5830 实验0
前置 本次实验使用 Golang 语言实现,在之前的年份中,都是像 cs186 那样使用 Java 实现。原因: Golang 语言作为现代化语言,简单易上手但功能强大。 使参加实验的同学有同一起跑线,而不是像Java那样,有些同…...
【简便方法和积累】pytest 单元测试框架中便捷安装插件和执行问题
又来进步一点点~~~ 背景:之前写了两篇关于pytest单元测试框架的文章,本篇内容对之前的做一个补充 一、pytest插件: pytest 有非常多的插件,很方便,以下为插件举例: pytest,pytest-html&#x…...
Zabbix数据库分离与邮件报警
基础环境:要有zabbix服务端与被监控端实验目标:源数据库与服务端存放在一台服务器上,分离后源数据库单独在一台服务器上,zabbix服务端上不再有数据库。环境拓扑图: 实验步骤: 1.在8.7服务器上安装相同版本…...
mybatisplus-多数据源配置
1. 流程 pom文件yml配置多数据源具体服务添加注解DS(“***”) 1.pom文件 <!--mybatis plus 起步依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</vers…...
微信小程序(二十八)网络请求数据进行列表渲染
注释很详细,直接上代码 上一篇 新增内容: 1.GET请求的规范 2.数据赋值的方法 源码: index.wxml <!-- 列表渲染基础写法,不明白的看上一篇 --> <view class"students"><view class"item">&…...
ubuntu22.04 安装conda
要在Ubuntu 22.04上安装Anaconda,可以遵循以下步骤: 首先,打开终端并更新系统包仓库,也需要安装curl工具,这可以通过以下命令完成: sudo apt update && sudo apt install curl -y使用curl命令行工具…...
W801学习笔记十:HLK-W801制作学习机/NES游戏机(总结)
本章总结一下整个开发过程中遇到的问题: 1、引脚的抗干扰问题: 屏幕显示的时候,概率出现花屏。无论怎么修改代码都不能解决,一个偶然的机会,发现当手触摸屏幕的WR和CS引脚时,屏幕会正常。查阅资料&#x…...
《HTML 简易速速上手小册》第6章:HTML 语义与结构(2024 最新版)
文章目录 6.1 语义化标签的重要性6.1.1 基础知识6.1.2 案例 1:使用 <article>, <section>, <aside>, <header>, 和 <footer>6.1.3 案例 2:构建带有嵌套语义化标签的新闻网站6.1.4 案例 3:创建一个带有 <mai…...
分析HarmonyOS应用/服务的CPU活动性能
CPU Profiler 性能分析是用来分析CPU性能瓶颈的工具,可以实时查看应用/服务的CPU使用率和线程活动,也可以查看记录的方法跟踪数据、方法采样数据和系统跟踪数据的详情。基于CPU性能分析,您可以了解在一段时间内执行了哪些方法,以及…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
【技巧】dify前端源代码修改第一弹-增加tab页
回到目录 【技巧】dify前端源代码修改第一弹-增加tab页 尝试修改dify的前端源代码,在知识库增加一个tab页"HELLO WORLD",完成后的效果如下 [gif01] 1. 前端代码进入调试模式 参考 【部署】win10的wsl环境下启动dify的web前端服务 启动调试…...
