SpringBoot专题学习Part24:自定义SpringBoot的启动器(Starter)

本文介绍了如何自定义SpringBoot的启动器,包括确定场景依赖、编写自动配置、配置spring.factories文件,以及项目创建与模块划分。通过创建启动器和自动配置模块,实现只需引入启动器就能快速配置相关场景。文中还提供了详细的配置步骤和测试验证。
摘要由CSDN通过智能技术生成

一、概述:

Spring Boot的强大之处就在于能够抽取场景作为启动器
只要加载了启动器 即可快速配置好相应的场景

那么 自定义starter(场景启动器)的步骤是:
1、首先要确定该场景需要的依赖是什么
2、然后编写自动配置

使用@Configuration注解来指定一个类为配置类

使用@ConditionalOnXXX注解 在指定条件成立的情况下该自动配置类才生效
例:

@ConditionalOnWebApplication(
    type = Type.SERVLET
)

使用@AutoConfigurationAfter注解来指定自动配置类的顺序
例:

@AutoConfigureAfter({
   DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})

使用@Bean注解来给容器中添加组件

使用@ConfigurationProperties注解结合相关的xxxProperties类来绑定相应的配置
例:

@ConfigurationProperties(
    prefix = "spring.mvc"
)

使用@EnableConfigurationProperties注解让xxxProperties类生效并加入到容器中
例:

@EnableConfigurationProperties({
   WebMvcProperties.class, ResourceProperties.class})

还须在classpath下的META-INF下的spring.factories文件中指定自动配置类的路径
让SpringBoot知道在启动时要加载的自动配置类有哪些
例:

# Initializers
org.springframework.context.ApplicationContextInitializer=\
net.zjitc.springboot.listener.HelloApplicationContextInitializer

# Listener
org.springframework.boot.SpringApplicationRunListener=\
net.zjitc.springboot.listener.HelloSpringApplicationRunListener

注意点:启动器应为一个空的jar文件 只提供辅助性的依赖管理 这些依赖可用于自动装配或其它类库
然后专门写一个自动配置模块 启动器是依赖于自动配置模块的
因此 只须引入启动器 即视为引入了自动配置模块
即:xxx-starter(启动器) → xxx-starter-autoconfigurer(自动配置模块)

命名规范

  • SpringBoot官方的命名空间:
    前缀:“spring-boot-starter-”
    模式:spring-boot-starter-模块名
    例:spring-boot-starter-web
  • 自定义的命名空间:
    后缀:“-spring-boot-starter”
    模式:模块名-spring-boot-starter
    例:mybatis-spring-boot-starter

二、项目创建

由于需要有启动器和自动配置模块这两样 因此为方便起见 在IDEA中 创建一个空的工程
在这里插入图片描述
点击加号 添加模块

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值