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

相关推荐
武昌库里写JAVA2 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
小白杨树树3 小时前
【WebSocket】SpringBoot项目中使用WebSocket
spring boot·websocket·网络协议
酷爱码5 小时前
Java -jar命令运行外部依赖JAR包的深度场景分析与实践指南
java·python·jar
clk66079 小时前
Spring Boot
java·spring boot·后端
爱敲代码的TOM9 小时前
基于JWT+SpringSecurity整合一个单点认证授权机制
spring boot
loser.loser10 小时前
QQ邮箱发送验证码(Springboot)
java·spring boot·mybatis
喜欢踢足球的老罗10 小时前
在Spring Boot 3.3中使用Druid数据源及其监控功能
java·spring boot·后端·druid
weixin_4365250712 小时前
Spring Boot 实现流式响应(兼容 2.7.x)
java·spring boot·后端
weixin_4293260912 小时前
Spring Boot-面试题(52)
java·spring boot·后端