2021-07-27 spring-boot自动配置的理解

spring-boot自动配置

spring-boot自动配置的意义

第三方框架和spring搭配配置环境时,需要导入及其多的依赖,然后需要三个配置类来分别代替springMVC.xml、applicationContext.xml和web.xml,这三个配置类分别为:
1.继承AbstractAnnotationConfigDispatcherServletInitializer的类,代替web.xml,其中指定根容器的配置类,子容器的配置类,url-pattern和字符编码集过滤器。
在这里插入图片描述

2.实现WebMvcConfigurer的类,代替springMVC.xml,其中可以配置视图解析器,静态资源,文件上传等。
在这里插入图片描述
3.还有一个类代替applicationContext.xml,可以设置数据源,事务管理器,SqlSessionFactoryBean等
在这里插入图片描述
从上述配置中,搭建spring,springMVC,mybatis为一体的环境需要很多操作,且大多数操作都是模板化的,重复性劳动。
所以spring-boot提供了一个自动配置,来简化spring与第三方框架的集成。
spring集成第三方框架的代码可以分为两个部分,一个是重复性劳动,如集成mybatis时,创建SqlSessionFactoryBean对象和return SqlSessionFactoryBean。一个是需要自定义的配置,如设置datasource。spring-boot使用starter依赖来把模板化的配置先配置好,然后利用外化配置文件application.properties/yml,将需要自定义的配置项进行统一管理。

spring-boot自动配置的原理

1.当创建一个spring-boot项目后,spring会以groupId创建一个文件夹,以artifactId加上Application创建一个java文件,作为启动类。类上有注解@SpringBootApplication
在这里插入图片描述
点击进入@SpringBootApplication注解后,会发现有一个注解**@EnableAutoConfiguration**,该注解的作用是启动自动配置。
2.当spring-boot项目运行时,会对类路径进行扫描,寻找METE-INF/spring.factories文件,以下将用mybatis-spring-boot-starter举例。
spring.factoryises
点击进入spring.factories后可以看到EnableAutoConfiguration=xxx
在这里插入图片描述
xxx就是自动配置类(AutoConfigurationClass),如MybatisAutoConfiguration,点进去后会发现如下
在这里插入图片描述
在这里插入图片描述
这里就是将spring整合第三方框架的模板化配置在这里进行了,所以MybatisAutoConfiguration实现了自动配置的功能
在这里插入图片描述
点击进入MybatisProperties类后,会发现在这里插入图片描述

在这里插入图片描述
所以MybatisProperties类实现了存储外化配置数据,然后spring-boot项目会读取application中的配置,并且将数据注入到MybatisProperties类中。
这样就实现了spring-boot的自动配置,最终spring-boot使用了一个xml文件就能代替ssm需要使用三个配置类的复杂搭配环境。
如要使用自定义starter也可按照上述步骤即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值