逆天日志打印导致的springboot上传文件失败

最近在写项目的时候,实现一个文件导入功能时,在上传文件时,程序报错java.io.UncheckedIOException: Cannot delete C:\Users\18578\AppData
出现这个错的时候第一印象是权限不够,临时文件删除不了,于是根据报错日志查看源码,报错源码位置如下
在这里插入图片描述
在这里插入图片描述

springboot上传文件时会生成一个临时文件,而这个临时文件最终会执行清除操作清除掉。但是再看源码的时候发现,执行删除操作的时候,程序执行失败,异常是被抛掉了,并不会影响程序继续执行,但是我的项目里面的上传功能是直接被阻断了,程序无法进行,看到这里,我就觉得很奇怪了,到底是哪里主动抛出了异常,阻断了程序执行,一时没有头绪。其实这个抛出的错误在没有关闭文件流的时候也会出现,但很明显,我不是由于这个原因。于是我打断点,看下执行的堆栈信息,一路沿着源码往上执行,最终找到了程序异常的地方
在这里插入图片描述由项目里面有一个环绕日志打印的切面引起(这个日志打印没用,应该是之前同事复制的以前哪个项目的),这个切面用于接口日志打印,而就是在日志打印的时候,引起的上传功能报错,罪魁祸首如下
在这里插入图片描述使用了json.tojsonstring(),所以执行的时候出错了。
结论:由于一个切面打印日志,错误的使用了json.tojsonstring去打印arg参数,导致的上传时,直接就程序异常了

Spring Boot中使用Thymeleaf是相对简单的,你只需要在你的项目中加入Thymeleaf的相关依赖即可。使用Thymeleaf步骤如下: 1. 在你的项目中添加Thymeleaf的依赖。可以通过Maven或者Gradle来添加依赖。例如,在Maven中,你可以在`pom.xml`文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 2. 在你的Spring Boot应用的配置文件中,配置Thymeleaf的一些属性。你可以在`application.properties`文件中添加下面的配置: ``` spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html spring.thymeleaf.cache=false ``` 在这个例子中,我们设置了模板文件的前缀为`classpath:/templates/`,后缀为`.html`,并且将缓存关闭。 3. 创建Thymeleaf模板文件。在`src/main/resources/templates/`目录下创建你的HTML模板文件。在这些模板文件中,你可以使用Thymeleaf的标记来进行动态数据绑定和渲染。 4. 在你的Spring Boot应用中使用Thymeleaf。你可以在Controller的方法中返回一个字符串,该字符串指定了你要渲染的Thymeleaf模板文件的名称。Spring Boot会自动根据配置的前缀和后缀来查找并渲染对应的模板文件。 以上就是在Spring Boot中使用Thymeleaf的简单步骤。通过这些步骤,你可以在你的Spring Boot应用中使用Thymeleaf来进行视图的渲染和展示。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值