Springboot如何判断pom.xml中是否加载了某个jar依赖

这里可以使用一个取巧的方法来判断, 即通过使用上下文对象的getClassLoader().loadClass("要判断的jar包中的标志性类Reference地址"); 来加载某个jar包中的标志性类来判断pom.xml文件中是否加载了某个依赖, 如果加载成功表示pom中加载了某个jar 依赖, 如果不成功表示没有加载某个依赖, 如 判断pom.xml中是否加载了Tomcat依赖

复制代码
conditionContext.getClassLoader().loadClass("org.apache.catalina.startup.Tomcat");

完整示例代码如下:

java 复制代码
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也是同样适用的.

相关推荐
奋进的芋圆2 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
AC赳赳老秦3 小时前
Python 爬虫进阶:DeepSeek 优化反爬策略与动态数据解析逻辑
开发语言·hadoop·spring boot·爬虫·python·postgresql·deepseek
czlczl200209254 小时前
OAuth 2.0 解析:后端开发者视角的原理与流程讲解
java·spring boot·后端
芒克芒克5 小时前
本地部署SpringBoot项目
java·spring boot·spring
奋进的芋圆7 小时前
TokenRetryHelper 详解与 Spring Boot 迁移方案
java·spring boot·后端
Knight_AL7 小时前
MinIO 入门实战:Docker 安装 + Spring Boot 文件上传(公有 / 私有)
spring boot·docker·容器
gAlAxy...7 小时前
5 种 SpringBoot 项目创建方式
java·spring boot·后端
Ahtacca9 小时前
解决服务间通信难题:Spring Boot 中 HttpClient 的标准使用姿势
java·spring boot·后端
h***38189 小时前
maven导入spring框架
数据库·spring·maven
悟空码字9 小时前
SpringBoot整合Kafka,实现高可用消息队列集群
java·spring boot·后端