目录
1、自定义starter的命名规则
SpringBoot提供的starter以spring-boot-starter-xxx的方式命名的。
官方建议自定义的starter使用xxx-spring-boot-starter命名规则。
以区分SpringBoot生态提供的starter。
2、自定义starter
1)导入依赖
<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
@Configruation
@ConditionalOnClass //@ConditionalOnClass:当类路径classpath下有指定类的情况下进行自动配置
public class MyAutoConfiguration {
static {
System.out.println("MyAutoConfiguration init....");
}
@Bean
public SimpleBean simpleBean(){
return new SimpleBean();
}
}
4)resoures下创建/META-INF/spring.factories
注意:META-INF是自定手动创建的目录,spring.factories也是手动创建的文件,在该文件中配置自己的自动配置类,
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.lagou.config.MyAutoConfiguration
3、自定义starter
1)导入自定义依赖
<dependency>
<groupId>com.lagou</groupId>
<artifactId>xxx-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2)在全局配置文件中配置属性值
simplebean.id=1
simplebean.name=自定义starter
3)编写测试方法
//测试自定义starter
@Autowired
private SimpleBean simpleBean;
@Test
public void xxxStarterTest(){
System.out.println(simpleBean);
}
文章内容输出来源:拉勾教育Java高薪训练营