Java java.lang.ClassNotFoundException: xxx问题2种情况解决(Spring Boot、Swagger)

1 问题描述

        java.lang.ClassNotFoundException: testTask

2 问题分析

2.1 Spring Boot

1、使用Class.forName(beanName).newInstance()创建实例,但是beanName不是包名加类名,而是Spring里面的@Component("testTask")实例名。

解决办法:

public Object getBean(String beanName){
    Object bean = null;
    if (beanName.indexOf(".") < 0) {
        //bean名为自定义的实例名@Component
        bean = SpringUtil.getBean(beanName);
    } else {
        //bean名带包名路径
        bean = Class.forName(beanName).newInstance();
    }
}

注:

        SpringUtil.getBean()方法源码请查看以下博客。

 Quartz 实现数据库配置定时任务https://blog.csdn.net/qq_38974638/article/details/114962987

2.2 Swagger

1、Swagger 3使用第三方的Swagger UI插件(swagger-bootstrap-ui),因为swagger-bootstrap-ui只支持Swagger 2,导致报错。

        <!-- Swagger 3 API接口调试工具        -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
		<!-- 引入swagger-bootstrap-ui包 /doc.html-->
		<dependency>
			<groupId>com.github.xiaoymin</groupId>
			<artifactId>swagger-bootstrap-ui</artifactId>
			<version>1.9.1</version>
		</dependency>

问题解决:

        (1)将Swagger 3改为Swagger 2,swagger-bootstrap-ui依赖不变。

		<!-- Swagger 2 API接口调试工具        -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>
		<!--这个swagger-ui是官方提供的一个前端页面,用来查看并导出生成的api文档-->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.9.2</version>
		</dependency>
		<!-- 引入swagger-bootstrap-ui包 /doc.html-->
		<dependency>
			<groupId>com.github.xiaoymin</groupId>
			<artifactId>swagger-bootstrap-ui</artifactId>
			<version>1.9.1</version>
		</dependency>

        (2)Swagger 3依赖不变,swagger-bootstrap-ui依赖改为knife4j-spring-boot-starter依赖,因为knife4j是swagger-bootstrap-ui的升级版,支持Swagger 3。

        <!-- Swagger 3 API接口调试工具        -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
        <!-- 引入knife4j-spring-ui包 /doc.html-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>

旭东怪的个人空间_哔哩哔哩_Bilibili旭东怪,人生低谷不可怕,可怕的是坚持不到人生转折点的那一天;旭东怪的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/484264966?spm_id_from=333.337.search-card.all.click

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值