SpringBoot3 解决NoResourceFoundException: No static resource favicon.ico.异常
spring boot3项目中浏览器中访问报错找不到favicon.ico,虽然不影响使用,用api工具也可以忽略这个异常,但是防止浏览器访问时出现异常干扰日志,所以在此自己处理一下。
SpringBoot3中关闭favicon.ico的配置已过时,配置无效了
spring.mvc.favicon.enabled=false (过时的配置)
这个情况有人去Github提了issue,但是Spring开发老哥说了这个不是bug,那就只能自己解决了。
解决方案
第一种是放置一个favicon.ico文件到项目中,但是本次针对独立的后端开发,不需要favicon.ico,所以不考虑这种方式。
方式二
忽略favicon.ico请求
package com.zaoshan.server.config;import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** @Author: ZhangWeinan* @Description:* @date 2024-05-17 16:19*/
@SpringBootConfiguration
public class FaviconConfiguration implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new HandlerInterceptor() {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {if (!"GET".equalsIgnoreCase(request.getMethod()) || !request.getRequestURI().toString().equals("/favicon.ico")) {return true;}response.setStatus(HttpStatus.NO_CONTENT.value()); // 设置状态码为204 No Contentreturn false;}}).addPathPatterns("/**");}
}