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也是同样适用的.

相关推荐
喜欢流萤吖~1 小时前
微服务架构解析:从单体到分布式
spring boot·后端
U盘失踪了9 小时前
Java 的 JAR 是什么?
java·jar
独自归家的兔11 小时前
OCPP 1.6 协议详解:StatusNotification 状态通知指令
开发语言·数据库·spring boot·物联网
eggwyw12 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
lv__pf12 小时前
springboot原理
java·spring boot·后端
itjinyin13 小时前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
霸道流氓气质16 小时前
SpringBoot中调用mybatis方法提示映射文件未找到Invalid bound statement(not found)的奇葩解决
spring boot·后端·mybatis
希望永不加班17 小时前
SpringBoot 中 AOP 实现权限校验(角色/权限)
java·spring boot·后端·spring
常利兵18 小时前
大文件上传不再卡顿:Spring Boot 分片上传、断点续传与进度条实现全解析
spring boot·后端·php
geNE GENT19 小时前
Spring Boot管理用户数据
java·spring boot·后端