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,所有的场景配置都写在里面了。


相关文章
消息中间件 缓存 监控
12 0
|
12天前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
50 5
|
1月前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
1月前
|
缓存 前端开发 Java
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
51 1
|
14天前
|
Java Spring 开发者
解锁 Spring Boot 自动化配置的黑科技:带你走进一键配置的高效开发新时代,再也不怕繁琐设置!
【8月更文挑战第31天】Spring Boot 的自动化配置机制极大简化了开发流程,使开发者能专注业务逻辑。通过 `@SpringBootApplication` 注解组合,特别是 `@EnableAutoConfiguration`,Spring Boot 可自动激活所需配置。例如,添加 JPA 依赖后,只需在 `application.properties` 配置数据库信息,即可自动完成 JPA 和数据源设置。这一机制基于多种条件注解(如 `@ConditionalOnClass`)实现智能配置。深入理解该机制有助于提升开发效率并更好地解决问题。
27 0
|
16天前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
26 0
|
1月前
|
缓存 负载均衡 Java
SpringBoot 与 Nginx 配置优化:性能拉满的关键学习方法
【8月更文挑战第1天】在现代Web开发领域,SpringBoot以其快速启动、简化配置的特性成为众多开发者的首选框架,而Nginx则以其高性能的HTTP和反向代理服务器功能著称。将两者结合,并通过精细的配置优化,可以显著提升Web应用的性能与稳定性。以下是为您学生定制的SpringBoot与Nginx配置优化的学习方法与研究路径。
54 1
|
1月前
|
Java
SpringBoot 配置多数据源
SpringBoot 配置多数据源
28 0
|
1月前
|
监控 Java Spring
Spring Boot Admin 配置应用
Spring Boot Admin 配置应用
26 0
|
1月前
|
Java
SpringBoot 配置 Swagger
SpringBoot 配置 Swagger
24 0