Tug*_*rul 5 http httpresponse spring-boot
我想在Spring引导中自动为每个响应返回响应对象时返回404.
我需要建议.
我不想在控制器中检查它是否为null.
您需要多个 Spring 模块来实现这一点。基本步骤是:
@ControllerAdvice捕获自定义异常并将其转换为 HTTP404状态代码的 。第 1 步:异常类
public class ResourceNotFoundException extends RuntimeException {}
Run Code Online (Sandbox Code Playgroud)
第 2 步:控制器建议
@ControllerAdvice
public class ResourceNotFoundExceptionHandler
{
@ExceptionHandler(ResourceNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public void handleResourceNotFound() {}
}
Run Code Online (Sandbox Code Playgroud)
第 3 步:AspectJ 建议
@Aspect
@Component
public class InvalidRepositoryReturnValueAspect
{
@AfterReturning(pointcut = "execution(* org.example.data.*Repository+.findOne(..))", returning = "result")
public void intercept(final Object result)
{
if (result == null)
{
throw new ResourceNotFoundException();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Github上提供了一个示例应用程序来演示所有这些操作。使用像 Postman for Google Chrome 这样的 REST 客户端来添加一些记录。然后,尝试通过其标识符获取现有记录将正确返回记录,但尝试通过不存在的标识符获取记录将返回404。
| 归档时间: |
|
| 查看次数: |
3230 次 |
| 最近记录: |