springBoot学习笔记自定义starter
Posted 拐柒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springBoot学习笔记自定义starter相关的知识,希望对你有一定的参考价值。
springBoot学习笔记(四)自定义starter
自定义starter
starter机制
SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进
starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。
SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。SpringBoot提供了针对日常企业应用研发各种场景的spring-boot-starter依赖模块。所有这些依赖模块都遵循着约定成俗的默认配置,并允许我们调整这些配置,即遵循“约定大于配置”的理念。
简而言之,starter就是一个外部的项目,我们需要使用它的时候就可以在当前springboot项目中引入它。
自定义zdy-spring-boot-starter
自定义starter,同时进行热插拔实现。
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId> <version>2.2.9.RELEASE</version>
</dependency>
</dependencies>
编写simpleBean
@EnableConfigurationProperties
@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 + '\\'' +
'';
MyAutoConfiguration
@Configuration
@ConditionalOnBean(ConfigMarker.class)
public class MyAutoConfiguration
static
System.out.println("MyAutoConfiguration init....");
@Bean
public SimpleBean simpleBean()
return new SimpleBean();
注解EnableRegisterServer
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(ConfigMarker.class)
public @interface EnableRegisterServer
配置标记类ConfigMarker
public class ConfigMarker
创建/META-INF/spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\
com.lagou.config.MyAutoConfiguration
结果展示
查看效果,我们只需要在别的项目中引入之前自定义starter的依赖,全局配置文件中配置数据,如果我们需要该starter的时候,在启动类上添加我们自定义好的注解,如果不需要的时候,则不添加注解,即可实现热插拔。
pom.xml
<dependency>
<groupId>com.lagou</groupId>
<artifactId>zdy-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
自动类
@SpringBootApplication
@EnableRegisterServer
public class SpringBootMytestApplication
public static void main(String[] args)
SpringApplication.run(SpringBootMytestApplication.class, args);
以上是关于springBoot学习笔记自定义starter的主要内容,如果未能解决你的问题,请参考以下文章