springboot自定义starter

springboot 自定义 starters

思路:
1、这个场景需要使用到的依赖是什么?
2、如何编写自动配置?

1、模式

创建2个maven项目。

  • 启动器(starter)
    • 启动器模块是一个空的jar包,它仅提供辅助性依赖管理,这些依赖可能用于自动装配,或者其他类库。
  • 自动配置模块(autoconfigure)
    • 启动器依赖的自动配置。这样别人只需要引入(starter)即可。

2、命名

官方命名是:spring-boot-starter-xxx

我们自定义用:xxx-spring-boot-starter

3、快速开始

  • 3.1、 创建一个空的project

使用maven初始化器创建一个maven模块:

使用spring initializr创建一个springboot模块:

不选中任何模块,可以选择springboot的版本,这里使用的是默认的版本:

项目结构:

在启动器模块,引入自动配置的坐标依赖:

把没用的目录结构都删掉,最终编写前比较整洁的目录结构:

  • 3.2、编写业务场景
  1. 编写xxProperties配置类,并用@ConfigurationProperties注解标注。

这里爆红无影响。

相当于写了属性,用来绑定配置文件中的: zxx.hello.prefixzxx.hello.suffix

  1. 编写需要用到这个配置类的xxService,同时要为这个xxService定义一个包含xxProperties的构造器。

  1. 要让它起效果,还需要编写一个自动配置类。

  1. 在 resources资源目录下新建 /META-INF/spring.factories 文件,它会在springboot项目启动时,加载上面的自动配置类,这样才生效。

  1. 把这2个模块,安装到maven仓库中,这样别人就可以通过坐标来引入了:

4、测试

  1. 新建一个demo项目,选中web模块:

  1. 引入我们自己定义的starter:
    <dependency>
        <groupId>com.zxx.starter</groupId>
        <artifactId>zxx-spring-boot-starter</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

这时我们就可以看到,此时的依赖已经引入到我们的demo工程里了:

  1. 写一个controller测试一下:

在application.properties配置文件中配置:

浏览器中访问:

原文地址:https://www.cnblogs.com/zhaoxxnbsp/p/13360137.html