SpringBoot基础篇

1:parent

目的:减少依赖配置

  • 开发SpringBoot程序要继承spring-boot-starter-parent
  • spring-boot-starter-parent中定义了若干个依赖管理
  • 继承parent模块可以避免多个依赖使用相同技术出现依赖版本冲突
  • 继承parent的形式也可以采用引入依赖的i形式实现效果

2:starter

目的:减少依赖冲突

  • 开发SpringBoot程序需要导入坐标时通常导入对应的starter
  • 每个不同的starter根据功能不同,通常包含多个依赖坐标
  • 使用starter可以实现快速配置的效果,达到简化配置的目的

注意:在实际开发中,使用任意坐标,仅书写G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V,如果发生坐标错误,在手动指定version(这里要小心版本冲突)

3:引导类

  • 启动方式 
  • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目(未启动web服务器)
  • SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

4:内嵌Tomcat(辅助功能 )

  • 内嵌Tomcat服务器是SpringBoot辅助功能之一
  • 内嵌Tomcat工作原理就是将Tomcat服务器当作对象运行,并将该对象交给Spring容器管理
  • 变更服务器思想去除现有服务器,添加全新的服务器

5:复制模板

  1. 在工作空间中复制对应工程,并修改工程名称
  2. 删除与idea的相关配置文件,仅保留src目录和pom.xml文件
  3. 修改pom.xml文件中的artifactId与新工程/模块名相同
  4. 删除name标签(可选)
  5. 保留备份工程供后期使用

6:yaml数据格式

6.1:yaml语法规则

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格,不能使用Tab键
  • 属性值前面添加空格(属性名和属性值之间使用冒号加空格作为分隔)
  • #表示注释

6.2:注意属性名冒号后面与数据之间有一个空格

6.3:yaml数据读取

  • 使用@Value读取单个数据,属性名引用方式引用属性:${一级属性名.二级属性名...}   
  • 属性值如果出现转义字符,需要使用双引号包裹         
  •   开发中最常用的读取方式:
  • 1:定义数据模型封装yaml文件中对应的数据
  • 2:定义为spring管控的bean,否则无法进行属性注入
  • 3:指定加载的数据 @ConfigurationProperties

7:SpringBoot整合第三方技术

7.1:SpringBoot整合Junit

  • 导入测试对应的starter
  • 测试类使用@SpringBootTest修饰
  • 使用自动装配的形式添加要测试的对象

注意:(1)测试类如果存在引导类所在包或其子包中,无需指定引导类

          (2)测试类如果不存在引导类所在包或其子包中,需要通过classes属性指定引导类

7.2:SpringBoot整合Mybatis

(1):创建新模块,选择Spring初始化,并配置模块相关基础信息

(2):选择当前模块需要使用的技术集(Mybatis,Mysql)

(3):设置数据源参数

(4):定义数据层接口与映射配置

(5):测试类中注入dao接口,测试功能

7.3:SpringBoot整合Druid

1:整合Druid需要导入Druid对应的start

2:根据Druid提供的配置方式进行配置

3:整合第三方技术通用方式

  • 导入对应的starter
  • 根据提供的配置格式,配置非默认值对应的默认项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/655576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《java数据结构》--栈的详解

一.栈的认识 栈是一种不同于链表和顺序表的储存数据结构,它对存储数据和取出数据有着特殊的要求🤔。 首先栈只能从一端存储数据,也就是从一端进,还从这一端出这也是栈最大的特点,这也导致在栈中存取数据都必须遵循先…

FreeRtos进阶——队列的特殊用途

信号量与互斥量都一样,都是特殊的队列。但是只有互斥量实现了优先级继承机制。 信号量与互斥量与队列一样,在操作增加或者减少时,必须先关中断在进行操作! 信号量创建揭秘 图中信号量的创建过程,在代码中的体现本质就是…

vue+antd实践:在输入框光标处插入内容

今天来看一个很简单的需求。 需求描述:在输入框光标处,插入指定的内容。 效果如下: 实现思路:刚开始还在想怎么获取光标的位置,但是发现所做的项目是基于vue3antd组件,那么不简单了嘛,只要调…

SwiftUI初探

SwiftUI 虽然出现了好几年(1.0好像2019年出的,还有SPM也是同一年),现在已经到从1.0到5.0,但受限于对系统的要求(最低iOS13.0,有的要求17.0及以上),每个版本里面差异也很大,语法和Flutter 的Dart 比较像。空闲之余可以先…

Design and implementation of robot impedance controller

机器人阻抗控制器的设计与实现是一个复杂但关键的过程,它涉及到多个方面以确保机器人能够在外界环境的影响下保持稳定的性能。以下是对机器人阻抗控制器设计与实现的详细解答: 一、阻抗控制原理 阻抗控制的基本原理是建立一个期望的机器人位置和接触力…

HTML用法介绍

文章目录 一、HTML概念和模版二、常用标签及用法1.p标签2.span标签3.h标签4.hr标签5.img标签6.a标签7.input标签8.table标签 一、HTML概念和模版 HTML的全称为超文本标记语言&#xff0c;它包括一系列标签组成&#xff0c;模版及各部分注释如下&#xff1a; <!--声明文档类…

iptables练习题

目录 练习题1. 显示当前的iptables规则2. 允许所有来自192.168.1.0/24的TCP流量到本机的22端口&#xff08;SSH&#xff09;3. 禁止所有来自10.0.0.0/8的ICMP流量4. 允许所有出站流量5. 拒绝所有来自外部的HTTP流量&#xff08;80端口&#xff0c;tcp协议&#xff09;6. 删除IN…

设计模式19——观察者模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 观察者模式&#xff08;Observ…

利用cherry pick巧妙地将某次提交单独合并到其他分支

0. 引言 最近在进行系统的多版本并行开发&#xff0c;涉及一些共有基础功能提交时就遇到了麻烦&#xff0c;一份代码需要向多个版本分支进行同步&#xff0c;以保证多版本都能有更新该基础功能。 多次对比提交的方式显然会带来巨大的工作量。但实际上我们可以通过git的cherry…

同时安装python2 和python3

最近的项目因为工具的原因 需要同时安装python2 和python3 我又想学着使用python 写东西 导致遇到了很多问题 记录下来 1 同时安装 python2 和python 1.1 安装完把/确认 Path 环境变量里 同时有python2,python2\Scripts和python3 ,python3\Scripts四个环境变量 修改python3…

IT人的拖延——渴望成功与害怕成功的矛盾

很多人都以为&#xff0c;害怕失败是拖延的主要诱因&#xff0c;但其实“害怕成功”也是拖延的主要诱因之一。要说这个原因&#xff0c;我们不得不提起Bible中的一个人“约拿”&#xff0c;让我们先来看看他的故事带给我们什么启示。 约拿情结简介 约拿是Bible中的一名先知&a…

hexo静态博客 部署到xxx.github.io github 静态页

hexo安装 npm install hexo-cli -g hexo init blog cd blog npm install hexo server key配置 ssh-keygen -t ed25519 -C “emaile.com” 添加key到github err gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository. 配置GitHub仓…

go select

select 是与 switch 相似的控制结构&#xff0c;与 switch 不同的是&#xff0c;select 中虽然也有多个 case&#xff0c;但是这些 case 中的表达式必须都是 channel 的收发操作。 select 能够让 goroutine 同时等待多个 channel 可读或者可写&#xff0c;在多个 channel 状态改…

【Python】 用Python的Pandas库美化打印Series和DataFrame

基本原理 在Python的数据分析领域&#xff0c;Pandas是一个非常重要的库。它提供了丰富的数据结构和数据分析工具&#xff0c;使得处理大型数据集变得简单高效。当你使用Pandas处理数据时&#xff0c;经常需要查看数据的预览&#xff0c;这时候美化打印&#xff08;Pretty-pri…

5、xss-labs之level6

一、level6-----大小写绕过 1、测试分析 测试了之前用过的payload&#xff0c;发现都不行&#xff0c;并且level4使用的Java伪协议也不行&#xff0c;可以得出<>、script、onclick都被过滤 2、构造payload 因为href被过滤&#xff0c;可以试一下大写HREF 初试payload…

Android应用开发之AndroidManifest.xml

一.AndroidManifest.xml介绍 1.定义 AndroidManifest官方解释是应用清单&#xff08;manifest意思是货单&#xff09;&#xff0c;每个应用的根目录中都必须包含一个&#xff0c;并且文件名必须一模一样。 它是Android程序的全局配置文件&#xff0c;是每个 android程序中必须…

linux 定时执行shell、python脚本

在linux里设置定时执行一般是用crontab&#xff0c;如果没有的话&#xff0c;可以先安装&#xff1a; 安装 查看是否安装 cron -v # 对于基于Debian的系统&#xff08;如Ubuntu&#xff09; sudo apt-get install cron# 对于基于RedHat的系统&#xff08;如CentOS&#xff…

selenium学习笔记

什么是selenium 比较官方的解释 Selenium是一个自动化测试工具&#xff0c;用于在Web应用程序中模拟用户操作。它提供了一组API&#xff0c;可以通过编程方式控制浏览器&#xff0c;并模拟用户的交互行为&#xff0c;例如点击、输入文本和导航等。Selenium支持多种编程语言&a…

论文阅读 - TIME-LLM: TIME SERIES FORECASTING BY REPROGRAMMING LARGE LANGUAGE MODELS

论文链接&#xff1a; https://arxiv.org/abs/2310.01728 目录 摘要 1 INTRODUCTION 2 RELATED WORK 3 METHODOLOGY 3.1 MODEL STRUCTURE 4 MAIN RESULTS 4.1 长期预测 4.2 短期预测 4.3 FEW-SHOT FORECASTING 5 CONCLUSION AND FUTURE WORK 摘要 动机&#xff1a; 时…

黎加厚教授:生成式人工智能对课程教材教法的影响

01 生成式人工智能与过去的信息技术有哪些不一样的地方 2023年&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;犹如百年惊雷&#xff0c;改变了我对计算机的认识。最先让我折服的是AI绘画&#xff0c;我只需要把心中想象的场景用提示词详细描述&#xff0c;立刻就生…