在Spring引导上有一个定制的错误控制器:
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
却被弃用,正确的替代方案是什么?
5条答案
按热度按时间6yt4nkrj1#
从2.3.x版开始,Spring Boot已弃用此方法。只要返回NULL,因为它无论如何都会被忽略。如果希望在完全移除方法时防止将来出现编译错误,请不要使用@Overover注解。如果需要,您也可以抑制弃用警告,但是,警告(也是@Override注解)有助于在移除方法时提醒您清理/修复代码。
xriantvc2#
1qczuiv03#
有一个
@ControllerAdvice
注解7gyucuyw4#
1.要处理错误,不需要定义实现错误控制器的控制器类。
1.处理整个应用程序中的错误,而不是编写
使用下面的类
}
1.上面用@ControllerAdacy标记的类充当自定义异常处理程序,它处理您的应用程序抛出的所有预期。在上面的代码示例中,为了便于理解,只显示了三个例外。它可以处理许多异常
1.在您的应用程序中,如果抛出任何异常,它将转到这个类并发送回响应。您可以根据自己的需要定制消息和结构。
u5i3ibmn5#