springboot 如何创建自定义starter

 springboot Starter 是一个插件 和依赖包的集合他是可以由我们自己手动创建的 我们下面就来讲怎么样手动创建一个starter

 

首先引入jar 包 

在pom.xml中引入SpringBoot自动化配置依赖jarspring-boot-configuration-processor和spring-boot-autoconfigure等jar包。

 

命名规则 

spring-boot-starter-XX是springboot官方的starter

 

XX-spring-boot-starter是第三方扩展的starter

开始构建starter

 

1.创建一个基础属性类类 也就是 包含需要的参数类 

@ConfigurationProperties(prefix = "person")

例如 String name

这个注解用于 在application.yml / application.properties中以person开头的配置与该类中的属性一一映射

配置文件中 persion.name = 18 即 propperties文件里person.**

定义类名 例如

public class helloProperties

 

2 定义一个service 实现类 实现具体业务 

 

3.starter 还需要一个核心启动类 (spring自动装配类)把刚才的类进行加载


@Configuration

@EnableConfigurationProperties(基础属性类) 可以进行自动配置属性类 使基础类的@ConfigurationProperties注解生效并且自动配置进srping容器里

@ConditionalOnClass(HelloServiceConfiguration.class)  @ConditionalOnClass(service实现类名称) 确定calsspath下存在该业务类自动配置spring中生效进行

@ConditionalOnProperty(prefix = "com.wisdom", value = "enabled", matchIfMissing = true) @ConditionalOnProperty:判断指定的属性是否具备指定的值。当应用配置文件中有相关的配置才会执行其所注解的代码块。

类名称例如 HelloServiceAutoConfiguration

@Autowired private HelloServiceProperties helloServiceProperties;注入基础配置类

 

 

其他注解

@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)

使用的方法加上bean注入到spring当中
4 注册配置类
在项目resources文件夹下面新建一个META-INF文件,并在下面创建spring.factories文件
配置参数
org.springframework.boot.autoconfigure.EnableAutoConfiguration=核心类路径



自我总结 详细请看 这篇优秀博客https://www.cnblogs.com/hello-shf/p/10864977.html

posted @ 2020-02-10 17:44  一直淡鱼  阅读(1712)  评论(0编辑  收藏  举报