Spring官方提供的starter名称为:spring-boot-starter-xxx
我们自己编写的start名字一般为xxx-spring-boot-starter
starter原理:
首先安装起步依赖
自动配置管理JavaBean,具体步骤如下:
1.基于java代码的Bean配置
2.自动配置条件依赖
自动配置条件依赖:
这些注解是springboot特有的,常见的条件依赖注解有:
注解 | 功能说明 |
---|---|
@ConditionalOnBean | 仅在当前上下文中存在某个bean时,才会实例化这个Bean |
@ConditionalOnClass | 某个class位于类路径上,才会实例化这个Bean |
@ConditionalOnExpression | 当表达式为true的时候,才会实例化这个Bean |
@ConditionalOnMissingBean | 仅在当前上下文中不存在某个bean时,才会实例化这个Bean |
@ConditionalOnMissingClass | 某个class在类路径上不存在的时候,才会实例化这个Bean |
@ConditionalOnNotWebApplication | 不是web应用时才会实例化这个Bean |
@AutoConfigureAfter | 在某个bean完成自动配置后实例化这个bean |
@AutoConfigureBefore | 在某个bean完成自动配置前实例化这个bean |
3.Bean参数获取
4.Bean的发现
我们需要从Spring Boot项目的启动类开始跟踪,在启动类上我们一般会加入SpringBootApplication注解 。
重点介绍如下三个注解:
SpringBootConfiguration:作用就相当于Configuration注解,被注解的类将成为一个bean配置类
ComponentScan:作用就是自动扫描并加载符合条件的组件,最终将这些bean加载到spring容器中
EnableAutoConfiguration :这个注解很重要,借助@Import的支持,收集和注册依赖包中相关的bean定义
5.Bean的加载
在Spring Boot应用中要让一个普通类交给Spring容器管理,通常有以下方法:
@Configuration和@Bean这两个注解一起使用就可以创建一个基于java代码的配置类,可以用来替代传统的xml配置文件。
@Configuration 注解的类可以看作是能生产让Spring IoC容器管理的Bean实例的工厂。
@Bean 注解的方法返回的对象可以被注册到spring容器中。
具体自己编写的大体步骤:
第一步:创建starter工程hello-spring-boot-starter并配置pom.xml文件
第二步:创建配置属性类HelloProperties
第三步:创建服务类HelloService
第四步:创建自动配置类HelloServiceAutoConfiguration
第五步:在resources目录下创建META-INF/spring.factories
然后就可以将当前starter安装到本地maven仓库供其他应用来使用。点击maven的install指令