Spring 如何定义@ExceptionHandler方法以返回特定于请求的响应,而不是标准响应<;实体>;或APIErrorResponse

Spring 如何定义@ExceptionHandler方法以返回特定于请求的响应,而不是标准响应<;实体>;或APIErrorResponse,spring,rest,exception,spring-restcontroller,controller-advice,Spring,Rest,Exception,Spring Restcontroller,Controller Advice,一开始,在我的dao层中只有一个异常“DataAccessException”,任何类型的异常都被用于在相应的控制器中捕获,相应的错误代码被设置为响应并返回给客户端。后来,我引入了一些更多的自定义检查异常,如ServiceNotFoundException和ServiceNotAvailableException。现在我正在全球范围内处理所有这些异常,如下所示 我定义了一个GlobalExceptionHandler类,该类用@ControllerAdvice注释,并在内部定义了处理异常的处理程

一开始,在我的dao层中只有一个异常“DataAccessException”,任何类型的异常都被用于在相应的控制器中捕获,相应的错误代码被设置为响应并返回给客户端。后来,我引入了一些更多的自定义检查异常,如ServiceNotFoundException和ServiceNotAvailableException。现在我正在全球范围内处理所有这些异常,如下所示

我定义了一个GlobalExceptionHandler类,该类用@ControllerAdvice注释,并在内部定义了处理异常的处理程序方法

我的问题是如何定义异常处理程序方法,以便将异常状态设置为我的响应(LoginResponse或PaymentCreationResponse等),并将其发送回客户端

LoginResponse.java
公共类登录响应{
私有布尔用户存在;
地位;
公共布尔值isUserExists(){
返回用户存在;
}
public void setUserExists(布尔userExists){
this.userExists=userExists;
}
公共状态getStatus(){
返回状态;
}
公共无效设置状态(状态){
这个状态=状态;
}
}