1. pom文件 標籤
依賴配置文件我們經常接觸到,但對<optional>
標籤理解可能一知半解(以我的角度,在這之前沒有關注過),或者是你沒看下面內容,都不知道optional應該放在什麼地方。
<optional>
標籤在pom文件中長這樣:
<dependency>
<groupId>org.tao</groupId>
<artifactId>sms-utool</artifactId>
<version>1.0-SNAPSHOT</version>
<optional>true</optional> <!-- 在這裏 -->
</dependency>
什麼作用? optional的作用是:當其他模塊依賴當前模塊時,不會依賴
2. 程序爲什麼這麼寫?
空口無憑,Hutool 工具包實現了很多好用的工具,他的擴展工具包依賴很多了第三方工具包,例如:
怎麼驗證?拿emoji舉例,沒添加emoji-java依賴,emojiUtil會爆紅,由於Java是動態加載,所以未使用時不會報錯。
Hutool開發者考慮到擴展中的內容我們一般不會用到,假如Hutool依賴文件設置爲默認:
如果
ConditioalOnClass
用於根據類路徑中是否包含指定的類來決定是否加載一個 Bean 或配置類。
@Configuration
public class SmsConfig {
@ConditionalOnClass(TxSmsService.class)
static class TxConfig{
@Bean
TxSmsService txSmsService() {
System.out.println("tx smsService init");
return () -> System.out.println("tx發送短信");
}
}
}
如果能找到TxSmsService類,那麼就注入TxSmsService。
----- 未完待續,按計劃2024-05-19之前寫完