自定义Stater

2.3 自定义Stater

SpringBoot starter机制

​ SpringBoot由众多Starter组成(一系列的自动化配置的starter插件),SpringBoot之所以流行,也是因为starter。

starter是SpringBoot非常重要的一部分,可以理解为一个可拔插式的插件,正是这些starter使得使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动通过classpath路径下的类发现需要的Bean,并织入相应的Bean。

例如,你想使用Reids插件,那么可以使用spring-boot-starter-redis;如果想使用MongoDB,可以使用spring-boot-starter-data-mongodb

为什么要自定义starter

开发过程中,经常会有一些独立于业务之外的配置模块。如果我们将这些可独立于业务代码之外的功能配置模块封装成一个个starter,复用的时候只需要将其在pom中引用依赖即可,SpringBoot为我们完成自动装配

自定义starter的命名规则

SpringBoot提供的starter以spring-boot-starter-xxx的方式命名的。官方建议自定义的starter使用xxx-spring-boot-starter命名规则。以区分SpringBoot生态提供的starter

整个过程分为两部分:

  • 自定义starter

  • 使用starter

首先,先完成自定义starter

(1)新建maven jar工程,工程名为zdy-spring-boot-starter,导入依赖:


<dependencies>

   
<dependency>

       
<groupId>org.springframework.boot</groupId>

       
<artifactId>spring-boot-autoconfigure</artifactId>

       
<version>2.2.2.RELEASE</version>

   
</dependency>

</dependencies>

(2)编写javaBean


@EnableConfigurationProperties(SimpleBean.class)


@ConfigurationProperties(prefix =
"simplebean") 

public class SimpleBean {

 

   
private int id;

   
private String name;

 

   
public int getId() {

       
return id;

    }

 

   
public void setId(int id) {

       
this.id = id;

    }

 

   
public String getName() {

       
return name;

    }

 

   
public void setName(String name) {

       
this.name = name;

    }

 

   
@Override

   
public String toString() {

       
return "SimpleBean{" +

                "id=" + id +

                ", name='" + name +
'\'' +

                '}';

    }

}

(3)编写配置类MyAutoConfiguration


@Configuration

@ConditionalOnClass //@ConditionalOnClass:当类路径classpath下有指定的类的情况下进行自动配置

public class MyAutoConfiguration {

 

 

   
static {

       
System.out.println("MyAutoConfiguration init....");

    }

 

 

   
@Bean

   
public SimpleBean simpleBean(){

       
return new SimpleBean();

    }

 

}

(4)resources下创建/META-INF/spring.factories

注意:META-INF是自己手动创建的目录,spring.factories也是手动创建的文件,在该文件中配置自己的自动配置类

image-20200111123116471


org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.lagou.config.MyAutoConfiguration

刚学了拉勾教育的《Java工程师高薪训练营》,看到刚学到的点就回答了。希望拉勾能给我推到想去的公司,目标:字节!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值