对于springboot-starter很好理解即让spring容器帮我们自动配置引入的组件。
下面具体讲一下怎么创建自定义的启动器。
首先我们需要用idea新建一个空的项目
接下来new一个moudle,注意是maven类型的
要确保新建的moudle要在项目的目录下(注意第三方启动器命名格式:xxxx-spring-boot-starter)
再建一个moudle,注意类型是spring initializr,同样确保其在项目的目录下
创建完成后将成后,项目结构
然后我们可以在这个模块中定义自己的服务
package com.yk.autoconfigure.stat;
import com.yk.autoconfigure.properties.FoolsDayProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import java.util.Date;
@Configuration
@ConditionalOnWebApplication
@EnableConfigurationProperties(FoolsDayProperties.class)
@Import(FoolsDayAutoConfiguration.Clfd.class)
public class FoolsDayAutoConfiguration {
public static class Clfd{
FoolsDayProperties foolsDayProperties;
public Clfd(FoolsDayProperties foolsDayProperties) {
this.foolsDayProperties = foolsDayProperties;
}
public void showIf(){
System.out.println(this.foolsDayProperties.toString());
}
}
}
package com.yk.autoconfigure.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Date;
@ConfigurationProperties("custom.foolsday")
public class FoolsDayProperties {
private Date date;
private String weather;
private String mind;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getWeather() {
return weather;
}
public void setWeather(String weather) {
this.weather = weather;
}
public String getMind() {
return mind;
}
public void setMind(String mind) {
this.mind = mind;
}
@Override
public String toString() {
return "FoolsDayProperties{" +
"date=" + date +
", weather='" + weather + '\'' +
", mind='" + mind + '\'' +
'}';
}
}
接下来将配置模块中多余的依赖去掉
启动类去掉,多余文件去掉,然后新建一个META-INF/spring.factories文件
spring.factories文件内容
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yk.autoconfigure.stat.FoolsDayAutoConfiguration
将配置模块打包
在fl-spring-boot-starter模块pom文件中引入下面模块的依赖
将其打包
搞完收工
我们来用一下刚刚定义的启动器,导入依赖
测试