網站首頁 編程語言 正文
這里可以使用一個取巧的方法來判斷, 即通過使用上下文對象的getClassLoader().loadClass("要判斷的jar包中的標志性類Reference地址");? 來加載某個jar包中的標志性類來判斷pom.xml文件中是否加載了某個依賴, 如果加載成功表示pom中加載了某個jar 依賴, 如果不成功表示沒有加載某個依賴,? 如 判斷pom.xml中是否加載了Tomcat依賴?
conditionContext.getClassLoader().loadClass("org.apache.catalina.startup.Tomcat");
完整示例代碼如下:
package cn.tekin.condition;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class MyTomcatCondition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
try {
// 通過從上下文中 加載Tomcat的核心類來判斷pom中是否添加了Tomcat依賴
conditionContext.getClassLoader().loadClass("org.apache.catalina.startup.Tomcat");
return true;
} catch (ClassNotFoundException e) {
return false;
}
}
}
這個方法對應gradle也是同樣適用的.
原文鏈接:https://blog.csdn.net/tekin_cn/article/details/136751696
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-12-23 C++成員函數如何當作回調函數同時傳遞this指針_C 語言
- 2022-09-25 Stream流水線的實現原理是什么
- 2022-05-08 Python進程間的通信一起來了解下_python
- 2022-03-10 搭建Redis服務器步驟詳細介紹_Redis
- 2022-07-18 iptables防火墻
- 2023-01-10 Go語言defer與return執行的先后順序詳解_Golang
- 2022-09-27 Kotlin示例講解標準函數with與run和apply的使用_Android
- 2022-08-25 C++示例講解vector容器_C 語言
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支