SpringBoot自动配置原理?SpringBoot中的Starter?嵌入式服务器?

SpringBoot自动配置原理

为什么依赖变少了?springboot是如何管理这些依赖的?

从pom文件出发,首先有一个父依赖spring-boot-starter-parent,父依赖又依赖于spring-boot-dependencies父依赖,这是pom工程,定义了一些第三方的jar包的版本。
如开发web模块,只需要引入spring-boot-starter-web,就会发现里面复用了一些定义好了版本的starter。

为什么不需要配置?看下启动类@SpringBootApplicaton注解,是一个组合注解,包含:@SpringbootConfiguration,就是Spring中@Configuration注解,表示是一个配置类,@Configuration实际上是一个@Component,是Spring管理的组件。
@EnableAutoConfiguration,是sb自动配置的核心,告诉sb开启自动配置。他包含下面2个注解@AutoConfigurationPackage,将配置类所在的包作为自动配置的包进行管理;
@Impoet 导入一个类到IOC容器中;导入的类,根据meta-inf下的sping.factory的配置进行导入。
@CompontScan,是Spring中的,将指定包下需要装配的组件注册到容器中。

在这里插入图片描述

springBoot根据配置文件自动装配所属依赖类,再通过动态代理的方式注入到spring容器中。

如何理解 Spring Boot 中的 Starter

使用spring + springmvc时,如果需要引入mybatis等框架,需要到xml中定义mybatis需要的bean。
starter就是定义一个starter的jar包,写一个@Configuration配置类、将这些bean定义在里面,然后在starter包的META-INF/spring.factories中写入该配置类,springboot会按照约定来加载该配置类。
开发人员只需要将相应的starter包依赖进应用,进行相应的属性配置(使用默认配置时,不需要配置),就可以直接进行代码开发,使用对应的功能了,比如mybatis-spring-boot–starter,spring-boot-starter-redis。

什么是嵌入式服务器?为什么要使用嵌入式服务器?

节省了下载安装tomcat,应用也不需要再打war包,然后放到webapp目录下再运行只需要一个安装了 Java 的虚拟机,就可以直接在上面部署应用程序了。
springboot已经内置了tomcat.jar,运行main方法时会去启动tomcat,并利用tomcat的spi机制加载springmvc。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值