在 Spring boot 上有一个自定义错误控制器:
package com.example.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.boot.web.servlet.error.ErrorController;
import javax.servlet.http.HttpServletRequest;
@Controller
public class CustomErrorController implements ErrorController
{
@RequestMapping("/error")
public String handleError(HttpServletRequest request)
{
...
}
@Override
public String getErrorPath()
{
return "/error";
}
}
但是,当编译时说:getErrorPath() in ErrorController has been deprecated
。好的,我找到了信息:使用server.error.path
财产。好的,添加这个application.properties
并删除该函数,但现在显示:CustomErrorController is not abstract and does not override abstract method getErrorPath() in ErrorController
,“需要一个已弃用的函数吗?”
如何制作自定义错误控制器?ErrorController
需要getErrorPath
但它已被弃用,正确的替代方案是什么?
从 2.3.x 版本开始,Spring boot 已弃用此方法。只需返回 null,因为无论如何它都会被忽略。如果您想在完全删除该方法时防止将来出现编译错误,请不要使用 @Override 注释。如果需要,您还可以抑制弃用警告,但是,警告(也是 @Override 注释)有助于提醒您在删除方法时清理/修复代码。
@Controller
@RequestMapping("/error")
@SuppressWarnings("deprecation")
public class CustomErrorController implements ErrorController {
public String error() {
// handle error
// ..
}
public String getErrorPath() {
return null;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)