四大核心
1、starter:jar包的引入,解決jar版本沖突問題
2、自動裝配:簡單配置甚至零配置即可運行專案
3、actuator:springboot程式監控器
4、CLI:命令列
starter
starter的命名有一種習慣,官方的starter一般都是spring-boot-starter-xxx,而我們自定義的starter一般都是xxx-spring-boot-starter,
首先我們需要明白一件事,就是我們自定義的bean是可以自動裝配過來的,而我們第三方自定義的starter是如何被componentScan掃描到的呢,其實有一個約定,就是在resources下創建一個META-INF目錄,在該目錄下創建一個spring.factories檔案,然后在該檔案下說明哪些類下是你的bean,
org.springframework.boot.autoconfigure.EnableAutoConfiguration
創建一個普通的springboot專案
我這里命名為hzy-spring-boot-starter,當你創建好之后,可以把啟動類刪了,因為我做依賴一般都是被其他專案引入的,所以留著也沒用,然后需要引入兩個依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
引入之后,我們可以定義一個service,里面可以寫我們的業務代碼,
public class HzyService {
public String getHelloWorld() {
return "hello world";
}
}
然后就是定義一個配置類,這里命名為AutoConfig,用來將我們的service注入到IoC容器中
@Configuration
public class AutoConfig {
@Bean
public HzyService hzyService() {
return new HzyService();
}
}
然后就是最重要的一步了,讓我們的配置類能被掃描到,在Spring中,約定大于配置,約定了我們在resources下創建一個META-INF的目錄,里面寫一個spring.factories檔案,配置上路徑即可,
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.hzy.AutoConfig
最后的最后就是將這個專案打包到我們本地的maven倉庫了,執行下面的命令即可,
mvn clean install -Dmaven.test.skip=true
最后,像引入其他依賴一樣,引入該依賴就可以了,里面那個HzyService,可以直接通過自動裝配創建物件,
@Autowired
private HzyService hzyService;
至此,自定starter就結束了,是不是很簡單,如果世界這么簡單就好了,,,
組態檔
我們在寫一些官方的配置的時候,可能會發現,當我們寫了一個前綴,后面會有一些提示,重要的是,我們的配置能夠生效,這是怎么做到的呢?
其實是通過一個@ConfigurationProperties注解實作的,通過配置前綴,它可以進行掃描到你的配置,
@ConfigurationProperties(prefix = "hzy")
public class HzyProperties {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
這樣一個簡單的配置,我們就可以在引入該jar的專案中進行配置了,如果不配置的話,name屬性為null,
此時我們修改我們的Service類,把該配置引進來,
public class HzyService {
@Autowired
private HzyProperties hzyProperties;
public String getHelloWorld() {
return "hello world: " + hzyProperties.getName();
}
}
另外,我們還需要修改我們的自動裝配類,通過@Import注解,將該類提前注入到IoC容器,
@Configuration
@Import(HzyProperties.class)
public class AutoConfig {
@Bean
public HzyService hzyService() {
return new HzyService();
}
}

當我們引入了該依賴之后,會有提示了,配置一下name,再次運行

可以看到,配置已生效,好了,今天的分享就到這里了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/240995.html
標籤:java
