SpringBoot从0到实战3:了解依赖管理、自动配置

简介: 依赖管理:声明了所有开发中常用的依赖的版本号,自动版本仲裁机制。(依赖传递性原则)依赖管理(在入门的项目中使用下面这一段代码即可,starter是一组开发依赖的集合)

依赖管理


父项目做依赖管理:

依赖管理:声明了所有开发中常用的依赖的版本号,自动版本仲裁机制。(依赖传递性原则)

依赖管理(在入门的项目中使用下面这一段代码即可,starter是一组开发依赖的集合)
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
</parent>
他的父项目
 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.3.4.RELEASE</version>
  </parent>


声明了所有开发中常用的依赖的版本号,自动版本仲裁机制。

如果有一天对仲裁的版本不满意,那么在xml文件中写一段把自己想要的版本放入代码中即可,可以自定义修改版本号。

修改版本号步骤:

查看spring-boot-dependencies里面规定的当前依赖的版本用的key。

然后在项目里面重写配置即可。如下面代码所示修改了mysql的版本号。

<properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>


开发导入starter场景启动器

1、见到很多 spring-boot-starter-* : *就是代表某种场景

例如:spring-boot-starter-web等。


2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入。


3、SpringBoot所有支持的场景,可以参考springboot的官方文档,除此之外还有第三方starter,如果还有其他场景可以使用自己创建的starter或第三方starter等。

https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter


4、见到的 *-spring-boot-starter: 一般这样的写法是第三方为我们提供的简化开发的场景启动器。


5、对于所有的starter场景启动器最底层的依赖,这个就是springboot最核心的底层依赖。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <version>2.3.4.RELEASE</version>
  <scope>compile</scope>
</dependency>

以后引用默认依赖可以不写版本号。

但引入非版本仲裁的jar需要写清楚依赖的版本号。

自动配置


SpringBoot自动配置:

自动配置好Tomcat

1、引入Tomcat依赖。

2、配置Tomcat。


自动配置好SpringMVC开发的全套组件

1、引入SpringMVC全套组件。

2、自动配好SpringMVC常用组件(功能)

在以前web.xml中以前要自己配置很多SpringMVC的东西。


自动配置好Web的常见使用功能,例如字符编码的问题

1、配置好了Web开发的常见场景功能。


默认的包结构

1、主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来,无需以前的包扫描配置

2、想要改变扫描路径

@SpringBootApplication(scanBasePackages=“com.atguigu”)

或者@ComponentScan 指定扫描路径,这个时候可以改变包的扫描路径,主程序外的包也可以运行了。

同时注意到:

@SpringBootApplication
等同于以下三个
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.atguigu.boot")


各种配置拥有默认值

1、默认配置最终都是映射到某个类上如:MultipartProperties

2、配置文件的值最终会绑定每个类上,这个类会在容器中创建对象


按需加载所有自动配置项

1、非常多的starter,但是只会打开引入哪个场景所对应的配置,在starter中有一个包叫做autoconfigure,所有的场景配置都写在里面了。


相关文章
|
2天前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
13 0
|
30天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
40 4
|
26天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
34 0
|
6天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
18 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
5天前
|
Java 数据库连接
SpringBoot配置多数据源实战
第四届光学与机器视觉国际学术会议(ICOMV 2025) 2025 4th International Conference on Optics and Machine Vision
30 8
|
3天前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
8 2
|
14天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
40 3
|
25天前
|
druid Java Maven
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
117 0
|
1月前
|
机器学习/深度学习 移动开发 自然语言处理
基于人工智能技术的智能导诊系统源码,SpringBoot作为后端服务的框架,提供快速开发,自动配置和生产级特性
当身体不适却不知该挂哪个科室时,智能导诊系统应运而生。患者只需选择不适部位和症状,系统即可迅速推荐正确科室,避免排错队浪费时间。该系统基于SpringBoot、Redis、MyBatis Plus等技术架构,支持多渠道接入,具备自然语言理解和多输入方式,确保高效精准的导诊体验。无论是线上医疗平台还是大型医院,智能导诊系统均能有效优化就诊流程。