SpringBoot学习笔记(3)-依赖管理和自动配置
创始人
2025-05-31 11:57:25
0

文章目录

    • 2 依赖管理和自动配置
      • 2.1 依赖管理
        • 2.1.1 什么是依赖管理
        • 2.1.2 修改自动仲裁/默认版本号
      • 2.2 starter 场景启动器
        • 2.2.1 starter 场景启动器基本介绍
        • 2.2.2 第三方 starter
      • 2.3 自动配置
        • 2.3.1 自动装配基本介绍
        • 2.3.3 SpringBoot 默认扫描包
        • 2.3.4 如何修改默认配置

2 依赖管理和自动配置

2.1 依赖管理

2.1.1 什么是依赖管理

  1. spring-boot-starter-parent 还有父项目, 声明了开发中常用的依赖的版本号
  2. 并且进行 自动版本仲裁 , 即如果程序员没有指定某个依赖 jar 的版本,则以父项目指定的版本为准

image-20230320184352529

image-20230320184517879

2.1.2 修改自动仲裁/默认版本号

  1. 将 SpringBoot mysql 驱动修改成 5.1.49,有两种方式,如下所示:
    5.1.49mysqlmysql-connector-java

让我们来看一眼运行结果。

image-20230320184929604

2.2 starter 场景启动器

2.2.1 starter 场景启动器基本介绍

  1. 开发中我们引入了相关场景的 starter,这个场景中所有的相关依赖都引入进来了,比如我们做 web 开发引入了,该 starter 将导入与 web 开发相关的所有

image-20230320185046246

我们进去看一下,都引入了哪些依赖

image-20230320185157153

  1. 所有场景启动器最基本的依赖就是 spring-boot-starter , 前面的依赖树分析可以看到这个依赖也就是 SpringBoot 自动配置的核心依赖

image-20230320185413821

2.2.2 第三方 starter

  1. SpringBoot 也支持第三方 starter
  2. 第三方 starter 不要从 spring-boot 开始,因为这是官方 spring-boot 保留的命名方式的。第三方启动程序通常以项目名称开头。例如,名为 thirdpartyproject 的第三方启动程序项目通常被命名为 thirdpartyproject-spring-boot-starter。
  3. 也就是说:xxx-spring-boot-starter 是第三方为我们提供的简化开发的场景启动

2.3 自动配置

2.3.1 自动装配基本介绍

前面学习 SSM 整合时,需要配置 Tomcat 、配置 SpringMVC、配置如何扫描包、配置字符过滤器、配置视图解析器文件上传等,非常麻烦。而在SpringBoot 中,存在自动配置机制,提高开发效率

#### 	2.3.2 SpringBoot 自动配置了哪些?

image-20230320185157153

2.3.3 SpringBoot 默认扫描包

第一步、修改MainApp.java代码,看一下ioc容器被扫描到的组件

@SpringBootApplication
public class MainApp {public static void main(String[] args) {//启动 SpringBoot 应用程序/项目//返回ioc容器ConfigurableApplicationContext ioc= SpringApplication.run(MainApp.class, args);//查看ioc容器里面的组件String[] beanDefinitionNames = ioc.getBeanDefinitionNames();for (String beanDefinitionName : beanDefinitionNames) {System.out.println("beanDefinitionName--"+beanDefinitionName);}}}

第二步、运行结果

image-20230320190058157

2.3.4 如何修改默认配置

  • 如何修改默认扫描包结构
  1. 需求:要求能扫描 com.hspedu 包下的 HiController.java 应该如何处理?
  2. 创建: quickstart\src\main\java\comxjz\HiController.java, 并测试,这时是访问不到的

第一步、创建HiController

package com.xjz;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HiController {@RequestMapping("/hi")@ResponseBodypublic String hi(){return "hi,SpringBoot";}
}

第二步、修改MainApp.java,增加扫描的包,并完成测试。

//直接在 SpringBootApplication 注解后指定
@SpringBootApplication(scanBasePackages="com.xjz")
public class MainApp {public static void main(String[] args) {//启动 SpringBoot 应用程序/项目//返回ioc容器ConfigurableApplicationContext ioc= SpringApplication.run(MainApp.class, args);//查看ioc容器里面的组件String[] beanDefinitionNames = ioc.getBeanDefinitionNames();for (String beanDefinitionName : beanDefinitionNames) {System.out.println("beanDefinitionName--"+beanDefinitionName);}}}

第三步、运行结果

image-20230320203933826

  • resources\application.properties 配置大全

    1.SpringBoot 项目最重要也是最核心的配置文件就是 application.properties,所有的框架配置都可以在这个配置文件中说明

    地址:SpringBoot学习笔记(2)-application.properties配置大全_xjz_2002的博客-CSDN博客

  1. 修改配置–自定义端口及文件上传大小
#默认 server.port=8080
server.port=10000# 修改文件上传的大小
# multipart.max-file-size 属性可以指定SpringBoot上传文件大小的限制
# 默认配置最终都是映射到某个类上,比如 multipart.max-file-size
# 会映射/关联到 MultipartProperties 上
# 把光标放在该属性,ctrl+b 就可以定位该配置映射到的类
spring.servlet.multipart.max-file-size=10MB
  1. 自定义配置属性

第一步、在application.properties文件中自定义属性

#自定义配置属性
my.websize=https://www.baidu.com

第二步、在HiController.java文件中添加@Value属性

@Controller
public class HiController {@Value("${my.websize}")private String websize;@RequestMapping("/hi")@ResponseBodypublic String hi(){System.out.println("websize:" + websize);return "hi,SpringBoot";}
}

第三步、查看控制台

image-20230320213729352

  • SpringBoot在哪配置读取application.properties

image-20230320214408196

相关内容

热门资讯

【Spring从成神到升仙系列... 👏作者简介:大家好,我是爱敲代码的小黄,独...
人生励志签名100句,qq人生... 1、知识愈浅,自信愈深。——苏联   2、勇敢乃是自信与害怕中间之道。——(希腊)亚里士多德  3、...
安全生产标语二十条,安全生产标... 1、关爱生命 安全发展 2、安全第一 预防为主 综合治理3、广泛深入开展“安全生产月...
关于青春的励志签名,创业励志签... 1、世上最重要的事,不在于我们在何处,而在于我们朝着什么方向走。   2、世上没有绝望的处境,只有对...
拼搏的励志签名,最新或2023... 1、如果你认为学校里的老师过于严厉,那么等你有了老板再回头想一想。   2、世界青睐有雄心壮志的人。...
春运安全标语,春运安全注意事项... 1、文明交通你我他,平安出行迎新春。 2、春运安全连万家,出行平安你我他。3、驾车莫贪杯中酒,平安幸...
访问网络服务-Go对IPC的支... 访问网络服务-Go对IPC的支持 文章目录访问网络服务-Go对IPC的支持一、socket与IPC1...
自己主持婚礼主持词精选 婚礼开...  自己主持婚礼主持词精选(一)  1、新人入场  新人踏着舞步走到一半,庄重登常  新郎:繁花似锦,...
浪婚礼主持词串词顺口溜 濠氬簡... 今天####年#月#日,天空因为今天的喜庆而变得格外晴朗,而大地也因为年青人的无限活力而充满了生机。...
最新或2023(历届)新年跨年... 最新或2023(历届)新年说说祝福大全一:过年要玩好,必须的;早餐别忘了,注意的;烟酒要减少,提醒的...
搞笑婚礼主持词精选 搞笑婚礼主... 开场音乐中 司仪登场 (秋天)  嘘,,,,多安静啊,一点掌声都没有,感谢大家无声的支持。  凉风有...
最新或2023(历届)鼠年qq...  最新或2023(历届)qq空间新年说说大全  一、 新年到来,百无禁忌。东行吉祥,南走顺利,西出平...
大模型落地比趋势更重要,NLP... 全球很多人都开始相信,以ChatGPT为代表的大模型,将带来一场NLP领...
Android开发-Andro... 01  Android UI 1.1  UI 用户界面(User Interface,...
有关于致父母的一封感谢信 给父... 父母的教育素质影响着学前儿童家庭教育的效果和质量,也直接决定着家庭教育的优劣成败。那么有关于致父母的...
有关于写给老师的一封感谢信 给... 感谢信作为一种礼貌性言语行为的载体,其中谢意表达的处理成为写好感谢信的核心环节。下面小编整理了有关于...
有关于致干部家属的感谢信 致干... 感谢信是写信人对给予自己帮助、支持、关心、祝贺、慰问、馈赠的施惠人表示答谢而写的社交礼仪书信。下面小...
婚礼主持词开场白,浪漫婚礼主持... 1、开场白:(神秘花园)  我们每个人都生长在同一个蔚蓝的星球;我们每个人都是从平坦或不平坦的一端开...
有关于致公交司机的感谢信 给公... 公交司机作为影响城市公共交通供给质量和服务满意度的双重介入主体,其个体行为在很大程度上代表了城市综合...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...