zoukankan      html  css  js  c++  java
  • 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配置文件中配置:

    浏览器中访问:

  • 相关阅读:
    C# Enum转换
    Split
    WCF访问安全
    [转] 检索 COM 类工厂中 CLSID 为 {000209FF00000000C000000000000046} 的组件时失败
    ICSharpCode.SharpZipLib.dll压缩的zip包,7zip解压时出错
    js控制ctrl+p
    跨域访问WCF问题
    sql:过滤字段中是否包含数字
    序列化/反序化
    [转]RegistryKey 操作注册表
  • 原文地址:https://www.cnblogs.com/zhaoxxnbsp/p/13360137.html
Copyright © 2011-2022 走看看