SpringBoot 自定义Starter

SpringBoot秉承“约定大于配置”的开发方式,使得我们基于Spring Boot开发项目的效率变得十分高。

以jar包封装一些统一的规范能力:
项目中要用的统一能力可以通过集中封装的方式集成到一个一个独立分发的jar包中提供给其他的项目使用,这样就把一些统一的规范集中管控,从而缩小了泛化的可能性,当然也抑制了工程的自由度,这个要根据项目的实际情况做一个平横。SpringBoot提供了更好的方式来实现这个目标,那就是Starter

Starter是实现SpringBoot“约定大于配置”的核心技术之一。

自定义starter
SpringBoot通过starter方式提供了封装更为精准的独立服务能力,让使用方开箱即用。目前很多开源系统都提供了starter方式,这样大大降低了我们使用这些优秀开源系统的门槛,也极大提高了开发效率。

命名规范:
1、官方命名空间(SpringBoot旗下项目)
spring-boot-starter-{name} 使用前缀 spring-boot-starter-
2、非官方自定义命名空间
{name}-spring-boot-starter 使用后缀 -spring-boot-starter

开发Starter的步骤:
1、创建Starter项目
2、定义Starter需要的配置类(xxxProperties)
3、编写服务类
4、编写自动配置类
5、加载自动装配(两种方式:注解或者spring.factories,后续在实例中介绍)
6、编写配置提示文件,spring-configuration-metadata.json(不是必须的)

---------------------------------------------- 快速上手 -----------------------------------------------

1、创建spring boot项目,命名为mymsgstarter-spring-boot-starter。项目结构见图。其中MsgProperties、MsgAutoConfiguration、MsgService分别为配置属性类、配置类、和服务类。

2、添加依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.2.2.RELEASE</version>
</dependency>   

3、配置属性类MsgProperties,使用@ConfigurationProperties(prefix=“mystarter.config”)声明,并设置prefix前缀(这里也可以定义属性类中的属性msg默认值)。

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
* @Description: 属性配置类
* @Author: Top
* @Version: V1.0
* @Date: 2020/6/4 2:18 下午
*/
@ConfigurationProperties(prefix = "mystarter.config")
public class MsgProperties {
   

String name;

Integer age;

public String getName() {
   
return name;
}

public void setName(String name) {
   
this.name = name;
}

public Integer getAge() {
   
return age;
}

public void setAge(
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值