一马平川
不积跬步无以至千里,后继才能薄发

Springboot自定义Starter

2021年02月13日
0
未分类

明天虽然没有女朋友要陪,但是工作还是要做好的~,项目需要自定义Starter对新功能进行支持,虽然之前也做过,但是没有系统性分析其原理,所以这两天对Spring自定义Starter进行深入学习,做了以下笔记,提供给大家学习。

Springboot自定义Starters

关键点

  1. 编写pom文件,引入相关依赖

  2. 编写XXXAutoConfiguration类实现自动配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //指定配置类
    @Configuration

    //在指定条件下成立的时候自动配置生效
    @ConditionalOnXXX

    //指定自动配置类的顺序
    @AutoConfigureAfter

    //给容器中添加组件
    @Bean

    //绑定配置文件中到属性配置类
    @ConfigurationProperties

    //加载属性配置类到容器,相当于用@Bean加载属性配置类,这个注解简化了流程
    @EnableConfigurationProperties
  3. 编写 META-INF/spring.factories 文件

    1
    2
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    xxx.xxx.XXXAutoConfiguration
  4. 模式:

    • 启动器只用来做依赖导入
    • 另外写一个自动配置模块,与启动器解耦
    • 启动器依赖自动配置,使用时引入启动器
  5. 命名:

    • 官方命名模式: spring-boot-starter-xxx
    • 自定义starter命名: xxx-spring-boot-starter

自定义Starter流程

  1. 创建空项目
  2. 空项目中新增模块(Maven项目)作为启动starter
  3. 空项目中新增模块(Spring项目)作为自动配置starter
  4. 启动starter引入自动配置starter依赖
  5. 自动配置starter编写
    1. 新增xxxProperties配置类,与配置文件做绑定
    2. 编写starter实现的功能
    3. 编写xxxAutoConfiguration类进行自动配置,在里面把实现的功能注入IOC容器
    4. 编写 META-INF/spring.factories 文件,把xxxAutoConfiguration配置进去
    5. 打包,先打包自动配置starter,再打包启动starter

如果喜欢这篇文章,可以给作者评个份哦~

原文声明: "转载本站文章请注明作者和出处Nothinglin ,请勿用于任何商业用途"

公众号:苦逼的学生仔