SpringBoot(依赖管理和自动配置)

文章目录

    • 1.基本介绍
        • 1.springboot是什么?
        • 2.快速入门
          • 1.需求分析
          • 2.环境配置
            • 1.确认开发环境
            • 2.创建一个maven项目
            • 3.依赖配置 pom.xml
            • 4.文件目录
            • 5.MainApp.java (启动类,常规配置)
            • 6.HelloController.java (测试Controller)
            • 7.运行启动类
            • 8.浏览器向Conroller发送请求
        • 3.快速入门小结
          • 1.SpringBoot跟SSM的关系
          • 2.pom.xml依赖关系图
          • 3.Sping,SpringMVC,SpringBoot的关系
          • 4.约定优于配置
    • 2.依赖管理和自动配置
        • 1.版本仲裁
          • 1.什么是依赖管理?
          • 2.查看SpringBoot父项目的默认依赖版本
            • 1.pom.xml 找到springboot父工程
            • 2.找到父工程的依赖
            • 3.所有依赖的默认版本
          • 3.自己指定依赖版本
            • 1.方式一:在pom.xml中指定版本
            • 2.方式二:在pom.xml使用 `properties`标签指定 version
        • 2.starter场景启动器
          • 1.基本介绍
          • 2.依赖树
          • 3.SpringBoot自动配置核心依赖
          • 4.官方启动器(spring-boot开头)
          • 5.第三方启动器
        • 3.自动配置
          • 1.基本介绍
          • 2.获取ioc容器,查看SpringBoot自动配置的bean
          • 3.SpringBoot默认扫描包
          • 4.修改默认扫描包
            • 1.需求分析
            • 2.修改启动类注解,增加要扫描的包
            • 3.启动测试
          • 5.修改默认配置 `resources\application.properties`
            • 1.基本介绍
            • 2.创建一个resources\application.properties文件
            • 3.根据SpringBoot的配置大全找到对应的配置并修改
            • 4.关于application.properties配置文件的解释
            • 5.自定义配置
          • 6.SpringBoot常用配置一览
          • 7.解读SpringBoot是从哪里读取的配置文件
            • ctrl + n 进入ConfigFileApplicationListener
          • 8.按需加载原则
            • 1.基本介绍
            • 2.autoconfigure包管理着所有的starter
          • 9.关于xxxAutoConfiguration,xxxProperties,application.properties的关系
            • 1.简要介绍
            • 2.查看源码
            • 3.debug展示ioc容器

1.基本介绍

1.springboot是什么?

image-20240312085209968

2.快速入门
1.需求分析

image-20240312085713750

image-20240312085738097

2.环境配置
1.确认开发环境

image-20240312085951699

2.创建一个maven项目

image-20240312093523386

3.依赖配置 pom.xml
  <!--导入springboot父工程--><parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.5.3</version></parent><dependencies><!--配置maven项目场景启动器,自动导入和web相关的包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

image-20240312094203189

4.文件目录

image-20240312094915894

5.MainApp.java (启动类,常规配置)
package com.sun.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author 孙显圣* @version 1.0*/
//表示是一个springboot项目
@SpringBootApplication
public class MainApp {public static void main(String[] args) {//启动springbootSpringApplication.run(MainApp.class, args);}
}
6.HelloController.java (测试Controller)
package com.sun.springboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** @author 孙显圣* @version 1.0*/
@Controller //仍然是spring注解
public class HelloController {@ResponseBody@RequestMapping("/hello")public String hello() {return "hello, springboot";}
}
7.运行启动类

image-20240312095203724

8.浏览器向Conroller发送请求

image-20240312095246334

3.快速入门小结
1.SpringBoot跟SSM的关系

image-20240312100232339

2.pom.xml依赖关系图

image-20240312100126819

image-20240312095953759

3.Sping,SpringMVC,SpringBoot的关系

image-20240312102228879

4.约定优于配置

image-20240312102936500

2.依赖管理和自动配置

1.版本仲裁
1.什么是依赖管理?

image-20240312103611623

2.查看SpringBoot父项目的默认依赖版本
1.pom.xml 找到springboot父工程

image-20240312103754545

2.找到父工程的依赖

image-20240312103904770

3.所有依赖的默认版本

image-20240312103941381

3.自己指定依赖版本
1.方式一:在pom.xml中指定版本

image-20240312104248485

2.方式二:在pom.xml使用 properties标签指定 version

image-20240312104442356

image-20240312104911259

2.starter场景启动器
1.基本介绍

image-20240312105641319

2.依赖树

image-20240312105723802

3.SpringBoot自动配置核心依赖

image-20240312105806447

4.官方启动器(spring-boot开头)

image-20240312105847048

5.第三方启动器

image-20240312105954594

3.自动配置
1.基本介绍

image-20240312110856440

2.获取ioc容器,查看SpringBoot自动配置的bean

image-20240312111130938

image-20240312111304960

3.SpringBoot默认扫描包

image-20240312111731617

4.修改默认扫描包
1.需求分析

image-20240312134648079

image-20240312134815420

2.修改启动类注解,增加要扫描的包

image-20240312135246056

3.启动测试

image-20240312135312667

5.修改默认配置 resources\application.properties
1.基本介绍

image-20240312135825996

2.创建一个resources\application.properties文件

image-20240312141705437

3.根据SpringBoot的配置大全找到对应的配置并修改

image-20240312141749128

4.关于application.properties配置文件的解释
  • 一个配置对应一个类的属性使用alt + b可以查找到对应的配置类
  • 对应的配置类会被注入到ioc容器中
5.自定义配置

image-20240312143551317

image-20240312143623413

6.SpringBoot常用配置一览
#端口号
server.port=10000
#应用的上下文路径(项目路径)
server.servlet.context-path=/allModel
#指定 POJO 扫描包来让 mybatis 自动扫描到自定义的 POJO
mybatis.type-aliases-package=com.cxs.allmodel.model
#指定 mapper.xml 的路径
#(application 上配置了@MapperScan(扫面 mapper 类的路径)和 pom.xml 中放行了 mapper.xml 后,
# 配 置 mapper-locations 没 有 意 义 。 如 果 mapper 类 和 mapper.xml 不 在 同 一 个 路 径 下 时 ,
mapper-locations 就有用了)
mybatis.mapper-locations=classpath:com/cxs/allmodel/mapper
#session 失效时间(单位 s)
spring.session.timeout=18000
#数据库连接配置
#mysql 数据库 url
mysql.one.jdbc-url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useSSL=false
#mysql 数据库用户名
mysql.one.username=
#数据库密码
mysql.one.password=
#线程池允许的最大连接数
mysql.one.maximum-pool-size=15
#日志打印:日志级别 trace<debug<info<warn<error<fatal 默认级别为 info,即默认打印 info 及其以
上级别的日志
#logging.level 设置日志级别,后面跟生效的区域,比如 root 表示整个项目,也可以设置为某个包下,
也可以具体到某个类名(日志级别的值不区分大小写)
logging.level.com.cxs.allmodel.=debug
logging.level.com.cxs.allmodel.mapper=debug
logging.level.org.springframework.web=info
logging.level.org.springframework.transaction=info
logging.level.org.apache.ibatis=info
logging.level.org.mybatis=info
logging.level.com.github.pagehelper = info
logging.level.root=info
#日志输出路径
logging.file=/tmp/api/allmodel.log
#配置 pagehelper 分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#jackson 时间格式化
spring.jackson.serialization.fail-on-empty-beans=false
#指定日期格式,比如 yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#指定日期格式化时区,比如 America/Los_Angeles 或者 GMT+10
spring.jackson.time-zone=GMT+8
#设置统一字符集
spring.http.encoding.charset=utf8
#redis 连接配置
# redis 所在主机 ip 地址
spring.redis.host=
#redis 服务器密码
spring.redis.password=
#redis 服务器端口号
spring.redis.port=
#redis 数据库的索引编号(0 到 15)
spring.redis.database=14
## 连接池的最大活动连接数量,使用负值无限制
#spring.redis.pool.max-active=8
#
## 连接池的最大空闲连接数量,使用负值表示无限数量的空闲连接
#spring.redis.pool.max-idle=8
#
## 连接池最大阻塞等待时间,使用负值表示没有限制
#spring.redis.pool.max-wait=-1ms
#
## 最小空闲连接数量,使用正值才有效果
#spring.redis.pool.min-idle=0
#
## 是否启用 SSL 连接. ##spring.redis.ssl=false
#
## 连接超时,毫秒为单位
#spring.redis.timeout= 18000ms
#
## 集群模式下,集群最大转发的数量
#spring.redis.cluster.max-redirects=
#
## 集群模式下,逗号分隔的键值对(主机:端口)形式的服务器列表
#spring.redis.cluster.nodes=
#
## 哨兵模式下,Redis 主服务器地址
#spring.redis.sentinel.master=
#
## 哨兵模式下,逗号分隔的键值对(主机:端口)形式的服务器列表
#spring.redis.sentinel.nodes= 127.0.0.1:5050,127.0.0.1:506
7.解读SpringBoot是从哪里读取的配置文件
ctrl + n 进入ConfigFileApplicationListener

image-20240312144535194

8.按需加载原则
1.基本介绍

image-20240312144722690

2.autoconfigure包管理着所有的starter

image-20240312144846230

9.关于xxxAutoConfiguration,xxxProperties,application.properties的关系
1.简要介绍
  • xxxProperties这个单例bean的属性就是配置,读取application.properties来修改默认的配置
  • xxxAutoConfiguration这个单例bean的属性中有xxxProperties,通过依赖注入获取到xxxProperties的bean对象从而实现自动装配
2.查看源码

image-20240312150500278

image-20240312150637540

3.debug展示ioc容器

image-20240312151156955

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字证书在网络安全中的重要性与实际应用

数字证书作为一种“电子身份证”&#xff0c;在当今数字化的商业环境中有着广泛的实际应用。它主要用于身份认证、加密通信、电子签名和安全访问控制等方面&#xff0c;为各行各业提供了安全可靠的数字化解决方案。 网络安全领域 在网络通信中&#xff0c;数字证书被广泛应用…

String 底层是如何实现的?

1、典型回答 String 底层是基于数组实现的&#xff0c;并且数组使用了 final 修饰&#xff0c;不同版本中的数组类型也是不同的&#xff1a; JDK9 之前&#xff08;不含JDK9&#xff09; String 类是使用 char[ ]&#xff08;字符数组&#xff09;实现的但 JDK9 之后&#xf…

MySQl基础入门⑧

上一章的内容 练习&#xff01;上一章表的内容&#xff01;&#xff01;&#xff01;熟能生巧 先重新创建一个数据库 命令create database supermarket; 然后查看数据库、再切换到当前数据库。 查看数据库 : show databases; 切换到当前数据库: use supermarket;创建员工…

动态规划:4种遍历方向图解+Python实现

前言 动态规划类题型在遍历过程中&#xff0c;根据状态转移函数的不同&#xff0c;代码实现时遍历的方向也会有所差异。总的来说&#xff0c;一共可以总结为下图四种模式&#xff1a; 红色五角星表示当前要计算的状态值&#xff1b;白底箭头代表哪些状态要提前算出来&#xf…

【C++设计模式】UML图的介绍及其画法

文章目录 前言一、UML图的介绍1.1 UML图是什么1.2 UML图的作用 二、UML图的画法2.1 最简单的UML图2.2 继承的UML图2.3 关联关系2.4 聚合关系2.5 组合关系2.6 依赖关系 总结 前言 在软件开发过程中&#xff0c;设计模式是一种被广泛应用的方法&#xff0c;它为解决特定问题提供…

【C++】AVL树的插入、旋转

目录 一、AVL树介绍1.1 概念1.2 定义 二、AVL树的实现2.1 插入2.2 旋转2.2.1 左单旋2.2.2 右单旋2.2.3 左右双旋2.2.4 右左双旋 一、AVL树介绍 1.1 概念 AVL树是高度平衡的二叉搜索树&#xff0c;相比普通的二叉搜索树&#xff0c;它防止了变成单支树的情况。因为AVL树每插入…

云服务器2核4G配置,阿里云和腾讯云哪个便宜?性能更好?

租用2核4G服务器费用多少&#xff1f;2核4G云服务器多少钱一年&#xff1f;1个月费用多少&#xff1f;阿里云2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年&#xff1b;腾讯云轻量2核4G服务器5M带宽165元一年、252元15个月、540元三…

C语言快速入门之字符函数和字符串函数

一.字符分类函数和字符转换函数 C语言中有一系列的函数专门做字符分类的&#xff0c;就是区分一个字符是属于什么类型的&#xff0c;头文件是 #include <ctype.h> 以下是具体函数&#xff1a; 这些函数的使用方法类似&#xff0c;我们写出一些代码来举例。 例如&…

解决ChatGPT发送消息没有反应

ChatGPT发消息没反应 今天照常使用ChatGPT来帮忙码代码&#xff0c;结果发现发出去的消息完全没有反应&#xff0c;即不给我处理&#xff0c;也没有抱任何的错误&#xff0c;按浏览器刷新&#xff0c;看起来很正常&#xff0c;可以查看历史对话&#xff0c;但是再次尝试还是一…

基于springboot+vue的线上教育系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 三、库表设计 四、论文 前言 现在大家的生活方式正在被计算机的发展慢慢改变着&#xff0c;学习方式也逐渐由书本走向荧幕,我认为这并不是不能避免的,但说实话,现在的生活方式与以往相比有太大的改变&#xff0c;人们的娱乐方式不仅仅…

2023年第三届中国高校大数据挑战赛第二场赛题C:用户对博物馆评论的情感分析(附上代码与详细视频讲解)

问题重述&#xff1a; 博物馆是公共文化服务体系的重要组成部分。国家文物局发布&#xff0c; 2021 年我国新增备案博物馆 395 家&#xff0c;备案博物馆总数达 6183 家&#xff0c;排名全球前列&#xff1b;5605 家博物馆实现免费开放&#xff0c;占比达 90%以上&#xff1b;…

Dynamic Wallpaper v17.4 mac版 动态视频壁纸 兼容 M1/M2

Dynamic Wallpaper Engine 是一款适用于 Mac 电脑的视频动态壁纸&#xff0c; 告别单调的静态壁纸&#xff0c;拥抱活泼的动态壁纸。内置在线视频素材库&#xff0c;一键下载应用&#xff0c;也可导入本地视频&#xff0c;同时可以将视频设置为您的电脑屏保。 应用介绍 Dynam…

mysql 事务 及 Spring事务 初论

1.事务概述 事务是一种机制&#xff0c;用以维护数据库确保数据的完整性和一致性。。事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。MySQL中主要使用INN…

“遥感新纪元:GPT技术引领地球观测的智慧革新“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能…

设计模式八:观察者模式

文章目录 1、观察者模式2、示例3、spring中的观察者模式3.1 spring观察者模式的使用3.2 spring观察者模式原理解析 1、观察者模式 观察者模式&#xff08;Observer Design Pattern&#xff09;,也叫做发布订阅模式&#xff08;Publish-Subscribe Design Pattern&#xff09;、模…

适合上班族的副业:steam游戏搬砖1天3小时,月入8K

互联网新时代&#xff0c;做副业的人越来越多。如果能充分利用下班后的时间&#xff0c;还真能赚到不少钱。steam游戏搬砖项目就是这样一个非常适合上班的副业&#xff0c;只要用心去操作&#xff0c;一个月至少收入两三千&#xff0c;多的轻松上万。 steam游戏搬砖项目其实做的…

2.4 RK3399项目开发实录-使用 SD 卡升级固件(物联技术666)

通过百度网盘分享的文件&#xff1a;嵌入式物联网单片… 链接:https://pan.baidu.com/s/1Zi9hj41p_dSskPOhIUnu9Q?pwd8qo1 提取码:8qo1 复制这段内容打开「百度网盘APP 即可获取」 本文主要介绍了如何将实现使用MicroSD卡&#xff0c;更新主板上的固件。但也仅限于固件小于4G大…

RabbitMQ - 01 - 快速入门

目录 界面总览 创建队列 选择默认交换机 发布消息 查看消息 通过实现以下目标快速入门 界面总览 RabbitMQ Management 界面总览 通道: 传输消息的通道 路由: 接收和路由(分发)消息 队列: 存储消息 消息队列的流程: 生产者将消息发送给路由,路由分发消息到各个队列存储…

超级实用导出各种excel,简单粗暴,无需多言

1、加入准备的工具类 package com.ly.cloud.utils.exportUtil;import java.util.Map;public interface TemplateRenderer {Writable render(Map<String, Object> dataSource) throws Throwable;}package com.ly.cloud.utils.exportUtil;import java.util.Map;public int…

Python之禅——跟老吕学Python编程

Python之禅——跟老吕学Python编程 Python之禅1.**Beautiful is better than ugly.**2.**Explicit is better than implicit.**3.**Simple is better than complex.**4.**Complex is better than complicated.**5.**Flat is better than nested.**6.**Spare is better than den…