Knife4j页面空白问题
这篇文章主要解决了使用Knife4j时页面显示空白的问题。通过检查网络响应和浏览器控制台,确定问题通常是由于请求被过滤器或拦截器拦截所致。文章提供了具体的解决方法,即需要在过滤器或拦截器中放行以下路径:`/doc.html`、`/doc.html#/**`、`/webjars/**` 和 `/v3/**`。这样可以确保Knife4j页面能够正常加载,避免空白页面的出现。
Spring Boot解决前端携带自定义Header时的跨域问题
在Spring Boot中,前端携带自定义Header进行跨域访问时,浏览器会先发送一个OPTIONS请求以确认是否允许携带该Header。为了解决这一问题,需要在服务器配置中允许该请求头并返回相应的响应头信息。可以通过在拦截器或过滤器的`afterCompletion`方法中添加代码来实现,包括设置`Access-Control-Allow-Origin`、`Access-Control-Allow-Methods`、`Access-Control-Allow-Headers`和`Access-Control-Allow-Credentials`等响应头。如果请求方法是OPTIONS,则直接返回204状态码。此外,还需在对应的Controller上添加`@CrossOrigin`注解以确保跨域请求被正确处理。
Spring Boot开启定时任务
Spring Boot 提供了便捷的定时任务功能。通过在主类或配置类上添加 `@EnableScheduling` 注解即可启用定时任务。在任意 Spring Bean 中,使用 `@Scheduled` 注解定义定时方法,并可通过 `fixedRate`、`fixedDelay` 或 `cron` 表达式配置执行时间。其中,Cron 表达式支持传统的 6个字段格式,可定义复杂的执行规则。默认情况下,所有任务共享单一线程,可以通过 `SchedulingConfigurer` 配置自定义线程池实现并发执行。常见问题包括任务未执行、Cron 表达式错误或任务阻塞等,需逐一排查。
Spring Boot文件上传到本地
本文介绍了如何在Spring Boot项目中实现将文件上传到本地的功能。首先,在Controller类中定义一个接收文件上传的接口,通过`@RequestParam`注解获取上传的文件。然后在实现类中处理文件上传逻辑,包括获取原始文件名、生成新文件名、保存文件到指定目录,并返回文件路径。文章提供了详细的代码示例,展示了如何实现这一功能。