前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试专题:Springboot如何管理版本依赖控制、自动配置及起步依赖

面试专题:Springboot如何管理版本依赖控制、自动配置及起步依赖

原创
作者头像
小明爱吃火锅
发布2023-12-25 10:59:07
5670
发布2023-12-25 10:59:07
举报
文章被收录于专栏:小明说Java小明说Java

前言

用过Springboot的人都知道,相对以前SSM(spring+springmvc+mybatis)来说,是跟加方便,省去了很多整合配置文件,只要一个yaml文件或者property问题管理所有配置就行,并且也自动集成tomcat,直接打成jar包,有java环境便可以运行,十分的方面。所以,如果面试中如果涉及到Springboot面试题,基本也会问Springboot如何管理版本依赖控制、自动配置及起步依赖等。本文就来讲解Springboot是如何管理版本依赖控制、自动配置及起步依赖这三个问题的。

管理版本依赖控制

这个问题可以先从springboot工程的pom依赖入手,随便打开一个springboot服务的pom文件,会发现所有的关于springboot的依赖是没有版本号的。

但是当打开整个工程的父pom文件的时候,就会发现,在父pom中指定的统一的版本号,子模块继承之后,锁定版本子module,不用写groupId和version

可以点击去springboot依赖,可以看到关于该springboot版本对应各种依赖的版本号

所以:

1.springboot底层使用maven管理依赖,通过控制pom.xml父子关系来完成细节配置,在父pom中定义具体框架和版本号以及额外的信息。

2.提供了很多场景的spring-boot-starter 的 pom.xml文件,来标准化的引入依赖避免冲突。

自动配置

Spring Boot 的自动配置功能可以根据项目中的依赖库自动配置 Bean。当添加某个依赖库时,Spring Boot 会自动创建并配置相应的 Bean,无需手动编写配置代码,主要以下步骤

1. @SpringBootApplication 中包含的@EnableAutoConfiguration,@SpingBootConfiguration,@ComponentScan 注解

2.@EnableAutoConfiguration 开启自动配置功能 内部还包含 @AutoCongurationPackage、@lmport

  • @AutoConfigurationPackage 中 @lmport(AutoConfigurationPacages.Registrar.class)引入了 Registrar.class 完成批量注册,默认扫描主启动类的包@Bean或者@Compont等注解
  • @lmport(AutoConfigurationlmportSelector.class),完成具体每个类的自动配置

3.@ComponentScan 扫描被@Compent(@Service@Controller)注解的bean 加载到容器中

4.@SpringBootConfiguration 表示这是一个SpringBoot的配置类擎

所以面试最终答案,可以这样回答:

1.所加载使用的jar包如果是比较常见的,spring都提供了默认配置,也就是不像以前一样需要把框架的每一个属性都要配置一遍力配置

2.springboot 通过在启动类上添加注解 @SpringBootApplication 完成自动配置

3.内部完成了读取每个iar包下的META-INF/spring.factories 和springoot-autoconfigure-2.6.7.jar中的默认配置

起步依赖

指的是各种starter重点是pom.xml,其中包含了框架所需要的其他依赖,不需要我们手动配置了

例如,要使用 Spring Web、Spring Data JPA 和 MySQL 数据库,可以在 pom.xml 文件中添加以下依赖:

代码语言:xml
复制
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <scope>runtime</scope>
    </dependency>
</dependencies>

通过使用 Spring Boot 的依赖管理功能,我们可以简化项目配置,降低维护成本。同时,Spring Boot 的自动配置功能可以帮助我们快速搭建应用程序。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 管理版本依赖控制
  • 自动配置
  • 起步依赖
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档