首页
学习
活动
专区
圈层
工具
发布

聊聊springboot自动装配出现的TypeNotPresentExceptionProxy异常排查

1 前言 正文开始前,我们做个小测试,假设我们封装了一个springboot starter,其自动装配类形如下内容 @Configuration @EnableConfigurationProperties...apollo-client.version} true 我的问题是 在运行环境为jdk8的springboot...我们运行一下,发现会出现 然后我们不改任何一行代码,把JDK调成11或者以上版本,再运行 项目成功运行。那我们的修复的第一直觉是不是把JDK8的版本提高。...因为他们大部分业务都跑在jdk8,冒然升级成jdk11,也不知道会不会因为了解决一个问题,而引入其他问题 2 问题排查 因为这个starter的自动装配配置的内容相对简单,基于老司机的第六感,问题大概率是出现在

55630
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    聊聊springboot自动装配出现的TypeNotPresentExceptionProxy异常排查

    前言正文开始前,我们做个小测试,假设我们封装了一个springboot starter,其自动装配类形如下内容@Configuration@EnableConfigurationProperties({...apollo-client.version} true 我的问题是在运行环境为jdk8的springboot...我们运行一下,发现会出现图片然后我们不改任何一行代码,把JDK调成11或者以上版本,再运行图片项目成功运行。那我们的修复的第一直觉是不是把JDK8的版本提高。...然后得到了业务团队技术经理的高度否定,因为他们大部分业务都跑在jdk8,冒然升级成jdk11,也不知道会不会因为了解决一个问题,而引入其他问题问题排查因为这个starter的自动装配配置的内容相对简单,基于老司机的第六感,问题大概率是出现在

    59840

    聊聊springboot项目出现同名bean异常报错如何修复

    ,铺垫了这么久,引来了今天要聊的话题,同名bean异常报错如何修复解决思路首先抛出一个观点,在同个spring容器中,是不能出现同名的bean,因此解决的思路要么搞成不同的spring容器,要么就是排除多个同名的...今天介绍的思路就是排除同名bean,只保留自己想要的bean实现方法1、方法一:通过@ComponentScan进行排除示例配置在springboot的启动类上加上形如下内容@ComponentScan...我将第一种方案告诉业务技术负责人后,他试了一下,果然没报错,但是后面出现一个问题,他说@SpringBootApplication的属性exclude()失效了,导致他项目要排除的自动装配类失效了。...return AuthCodeImpl.class.getName().equals(className); }}2、将自定义TypeExcludeFilter注入到spring容器 中这边有个特别需要注意的细节点...com.github.lybgeek.context.CustomTypeExcludeFilterApplicationContextInitializer按照上面三步执行,就可以排除自己想排除的bean总结当项目中出现同名

    1.2K10

    SpringBoot 实践-Filter 中的异常处理和 Controller 中的异常处理

    发生异常的时候会自动把请求 forward 到 /error 这个请求 path 下(/error 是 SpringBoot 提供的一个默认的mapping)。...主要是为了和 SpringBoot 中基于 REST 请求层所提供的两个用于处理全局异常的注解区分,这两个注解分别是 @ControllerAdvice 和 @RestControllerAdvice,...通过注解的名字其实就能看出,SpringBoot 中,可以通过这两个注解来实现对 @Controller 和 @RestController 标注的类进行全局拦截,因为是 Controller 层面的...@ExceptionHandler } 这种方式是没法处理 Filter 中异常的,只能处理 Controller 里面抛出的异常。...小结 本篇主要记录了在 SpringBoot 中如何保证 Filter 中抛出的异常能和业务一样以指定类型的对象返回,并对 SpringBoot 中提供的基于 Controller 层异常捕获处理进行简单介绍

    58100

    SpringBoot中的异常处理和参数校验

    存在的问题: 1、会遇到性能瓶颈; 2、很难定位问题; 3、try嵌套过多可读性很差; 不管什么原因出现了上述代码,那么最好还是改一下,如果非要在业务代码中try,那么也应该只在可能出现异常的地方使用try...SpringBoot中的异常捕获 直接上代码 @RestControllerAdvice public class GlobalException { @ExceptionHandler(value...ex.printStackTrace(); return "出现异常"; } } 那么在SpringBoot中我们就可以通过这样的一个配置可以获取到项目中出现异常的地方,我们可以在这个方法中可以获取出现异常的类的详细信息...注意坑: 这里跟大家分享一个踩过的坑,不能再Filter过滤器中抛出异常,如果通过在过滤器中抛出异常,然后通过异常处理类来处理,那么是不可能的,因为处理器是捕获不到Filter抛出的异常的。...如果出现了参数校验不通过,同样的也会抛出一个异常,BindException。

    1.1K30

    SpringBoot中的异常处理与参数校验

    存在的问题: 1、会遇到性能瓶颈; 2、很难定位问题; 3、try嵌套过多可读性很差; 不管什么原因出现了上述代码,那么最好还是改一下,如果非要在业务代码中try,那么也应该只在可能出现异常的地方使用try...SpringBoot中的异常捕获 直接上代码 @RestControllerAdvice public class GlobalException { @ExceptionHandler(value...ex.printStackTrace(); return "出现异常"; } } 那么在SpringBoot中我们就可以通过这样的一个配置可以获取到项目中出现异常的地方,我们可以在这个方法中可以获取出现异常的类的详细信息...注意坑: 这里跟大家分享一个踩过的坑,不能再Filter过滤器中抛出异常,如果通过在过滤器中抛出异常,然后通过异常处理类来处理,那么是不可能的,因为处理器是捕获不到Filter抛出的异常的。...如果出现了参数校验不通过,同样的也会抛出一个异常,BindException。

    1.1K20

    SpringBoot过滤器中的异常处理

    在昨天的文章我跟大家分享了SpringBoot中异常的处理中,我说了一个需要注意的点,就是过滤器中抛出的异常无法被异常处理类捕获,然后这个朋友就问应该如何处理。...Filter中的异常处理思路 首先我们要明白,在过滤器中我们一般是不会写很长的业务逻辑的,一般都是做一些基础参数或者权限的校验,所以不会出现太过复杂的代码。...既然我们知道代码的长度是可控的,那么在过滤器中我们可以严格的在可能出现异常的地方,用try,catch进行捕获,然后我们通过请求转发的方式转发到对应的Controller上,返回我们需要的json数据;...模拟一个异常,然后将请求转发到我们自定义的ErrorController中。....forward(req, resp); } filterChain.doFilter(req, resp); } } 那么通过上面的简单方式就可以处理过滤器中的异常情况了

    1.7K10

    【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常

    【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常 【已解决】ApplicationContextException: Unable to start ServletWebServerApplicationContext...due to missing ServletWebServerFactory bean异常 概述 最近在运行一个springboot项目时,出现了下面的异常。...这个异常情况有很多种,实际就是缺失了需要的类没有找到。...也就是在容器中没有注入ServletWebServerFactory类。 解决方案 这个异常可能有多个解决方案,因为有很多的原因。我先说说我用于解决问题的方案。...解决方案二 如果是springboot ,并且是web项目。那么检查一下是不是添加了@SpringBootApplication注解。 没有的话,加好就行了。 解决方案三 最后,可能就是缺失那个类了。

    19.7K41

    SpringBoot 中如何优雅地处理异常,包括异常处理机制、全局异常处理器、自定义异常?

    在开发过程中,异常处理是必不可少的一部分。SpringBoot 是一款非常流行的微服务框架,它提供了丰富的机制来处理异常。...本文将介绍 SpringBoot 中如何优雅地处理异常,包括异常处理机制、全局异常处理器、自定义异常等。...在实际开发中,我们通常需要根据不同的异常类型来进行不同的处理。抛出异常除了捕获异常之外,我们还可以在代码中主动抛出异常。抛出异常可以让程序更加健壮和安全,有助于避免程序在运行时出现不可预期的错误。...如果抛出了对应的异常,就会执行相应的异常处理方法,并返回一个对应的错误页面。自定义异常在实际开发中,我们经常需要自定义异常来处理业务逻辑中出现的异常情况。...这样,我们就可以使用 MyException 这个自定义异常类来处理业务逻辑中出现的异常情况。抛出自定义异常在业务逻辑中,如果出现了异常情况,我们就可以抛出自定义异常。

    3.3K40

    Springboot中@ConfigurationProperties轻松管理应用程序的配置信息

    作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 擅长领域:全栈工程师、爬虫、ACM算法 ConfigurationProperties轻松管理应用程序的配置信息...@ConfigurationProperties是什么 @ConfigurationProperties 注解的作用是将外部配置文件中的属性值注入到一个 Java Bean 中。...通过 @ConfigurationProperties 注解,我们可以在 Spring Boot 应用程序中轻松地将配置文件中的属性值映射到一个 POJO(Plain Old Java Object)类中...这样一来,我们无需手动编写代码来读取配置文件中的属性,而是可以直接将配置文件中的属性值注入到一个预定义的 Java Bean 对象中,然后在代码中直接使用这些属性值。...UserProperties 对象中,而不需要在代码中硬编码这些属性值,这样做可以提高代码的可维护性和灵活性。

    50610

    在代码中如何处理可能出现的异常情况?

    在代码中处理可能出现的异常情况是很重要的,这可以提高代码的稳定性和可靠性。...以下是一些处理异常情况的常见方法: 使用try-catch语句:在可能出现异常的代码块中使用try块,然后在catch块中捕获并处理异常。...try { // 可能会出现异常的代码 } catch (ExceptionType1 e1) { // 处理ExceptionType1类型的异常 } catch (ExceptionType2...assert someCondition : "断言失败"; 日志记录:在代码中记录异常情况,可以帮助开发人员查找和解决问题。可以使用日志框架(如log4j)来记录异常信息。...logger.error("发生异常", exception); 无论是通过try-catch、抛出异常还是其他方式,处理异常的目的是在出现异常情况时能够优雅地恢复程序的正常执行。

    84810
    领券