stater介绍
在使用boot搭建项目时,只需要引入官方的starter,就可以直接使用,免去了各种配置。starter简单来讲就是引入了一些相关依赖和一些初始化的配置。
spring官方提供了很多starter,第三方也可以自己定义
starter原理
springboot之所以简化项目搭建,主要提供起步依赖和自动配置
1、起步依赖
起步依赖,将某功能坐标打包一起。如:导入spring-boot-starter-web则web开发相关jar都导入了
2、自动配置
自动配置,就是无需手动配xml,自动配置并管理bean
自动配置涉及如下步骤:
- 基于java代码的bean配置
- 自动配置条件依赖
- bean参数获取
- bean的发现
- bean的加载
通过mybatis的启动依赖来举例
2.1、基于java代码的bean配置
2.2、自动配置条件依赖
3.3、bean参数获取
3.4、bean的发现
在启动类 运行程序的类里面有个注解@SpringBootApplication跟进我们会发现有
@SpringBootApplication
- @SpringbootConfiguration 说明启动类也是配置类,被注解的类将成为一个bean配置类
- @ComponmentScan作用就是自动扫描并加载符合条件的组件,最终bean加载到spring容器
- @EnableAutoConfiguration这个是重点,里面有@Import的支持,收集和注册依赖包中相关bean定义
2.5、bean的加载
1就相当与传统的xml配置 2我们平时经常用的比较熟悉
3是自动配置原理要重点掌握一下
3、自动配置总结
1、@Configuration与@Bean 基于java代码的bean配置 (就相当与传统的xml配置)
2、@Conditional:设置自动配置条件依赖(当满足某个条件才失效)
3、@EnableConfiguartionProperties与@ConfigurationProperties读取配置文件转化bean,配合使用找到配置文件的信息封装为bean yml的mysql redis配置什么的
4、@EnableAutoConfiguration与@Import注解,实现bean的发现和加载