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

相关推荐
S***q3779 小时前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
棋啊_Rachel9 小时前
Spring Boot深度解析:从零开始构建企业级应用
java·spring boot·后端
草原印象9 小时前
Spring Boot Spring MVC MyBatis MyBatis Plus框架编写项目实战案例
spring boot·spring·mybatis·springmvc·mybatisplus
p***s919 小时前
Spring Boot 整合 Redis 步骤详解
spring boot·redis·bootstrap
Slow菜鸟9 小时前
SpringBoot教程(三十五)| SpringBoot集成TraceId(追踪ID)
java·spring boot·后端
汤姆yu9 小时前
基于SpringBoot的餐饮财务管理系统的设计与实现
java·spring boot·后端
3***31219 小时前
Spring Boot 整合 MyBatis 与 PostgreSQL 实战指南
spring boot·postgresql·mybatis
czc13110 小时前
4K QPS 博客社区:CCBlog 全栈开源,Springboot项目实战,Docker一键部署
spring boot·redis·docker·开源·vue·rabbitmq
l***370910 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
小坏讲微服务10 小时前
Spring Boot 4.0 与 Spring Cloud Alibaba 2025 整合完整指南
java·spring boot·分布式·后端·spring cloud·微服务·架构