starter是 springboot的翅膀渡嚣,插上翅膀,就能飛得很高~
想飛的同學绝葡,跟著我腹鹉,一步步 diy自己的 starter~
1.創(chuàng)建pom項目
創(chuàng)建一個pom項目,命名為 sayhello-spring-boot-starter功咒,引入兩個依賴,如圖:
創(chuàng)建pom項目.png
2. 創(chuàng)建 bean
SayHello.java
package bean;
public class SayHello {
// 只有一個屬性
private String name;
public void setName(String name){
this.name = name;
}
// 最后輸出的信息
public String getMsg(){
return name + "say hello~~";
}
}
3. 創(chuàng)建properties類
SayHelloProperties.java
package properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
// 讀取配置文件中 hello:name 的配置
@ConfigurationProperties(prefix = "hello")
public class SayHelloProperties {
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
4. 創(chuàng)建自動配置類
MyAutoConfiguration.java
@Configuration
@ConditionalOnClass(SayHello.class)
@EnableConfigurationProperties(SayHelloProperties.class)
public class MyAutoConfiguration {
@Autowired
SayHelloProperties sayHelloProperties;
@Bean
@ConditionalOnMissingBean(SayHello.class)
public SayHello getSayHiService(){
SayHello sayHello = new SayHello();
// 從配置文件里獲取name, sayHello 這個bean初始化完成
sayHello.setName(sayHelloProperties.getName());
return sayHello;
}
}
看過自動配置原理的那一章的話,這個代碼看起來就很簡單咯~
5. 創(chuàng)建 spring.factories
在 resources/META-INF 目錄下章办,創(chuàng)建 spring.factories 文件滨彻,內容為自動配置類
spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration= MyAutoConfiguration
項目啟動,就可以自動裝配 MyAutoConfiguration
項目的整體結構如下:
項目結構.png
6. Maven 打包項目
通過命令 mvn clean install 打包項目休偶,得到jar包 sayhello-spring-boot-starter-1.0-SNAPSHOT.jar
接下來可以把jar包上傳到maven私服中辜羊,也可以通過導入的方式導入到另一個項目中使用,這里使用后者碱妆。在另一個項目中操作:
導入jar包.png
7. 配置 hello:name 值
server:
port: 9000
hello:
name: wangdaye-
8. 創(chuàng)建測試 controller
TestController.java
@RestController
@RequestMapping("/test")
public class TestController {
@Autowired
SayHello sayHello;
@GetMapping("/hello")
public String hello(){
return sayHello.getMsg();
}
}
瀏覽器訪問 localhost:9000/test/hello
測試輸出.png
王大爺跟你打了聲招呼疹尾,看到沒~~