如何在没有 Controller 类的情况下处理 Spring Boot 1.5.4 中的异常处理?目前,我只有实体和存储库类,如下所示。
任务.类:(实体)
@Entity
@Table(name = "task")
public class Task implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
@Length(min = 1)
private String name;
public Task() {
}
public Task(String name) {
this.name = name;
}
public Task(Long id, String name) {
this.name = name;
}
public long getId() {
return id;
}
public String getName(){
return name;
}
}
存储库.类:
public interface TaskRepository extends PagingAndSortingRepository<Task, Long> {
}
POST方法:返回200 ok
{
"name" : "test"
}
但是,
{
"name" : ""
}
返回 500 ,而不是 400 错误。
请告诉我,如果有任何方法可以在没有 Controller 类的情况下处理此异常。
最佳答案
您可以使用全局 @ExceptionHandler与 @ControllerAdvice注解。基本上,您可以使用 @ControllerAdvice 注释在类中定义要使用 @ExceptionHandler 处理的异常,然后在引发该异常时实现您想要执行的操作。
像这样:
@ControllerAdvice(basePackageClasses = RepositoryRestExceptionHandler.class)
public class GlobalExceptionHandler {
@ExceptionHandler({ValidationException.class, JsonParseException.class})
public ResponseEntity<Map<String, String>> yourExceptionHandler(Exception e) {
Map<String, String> response = new HashMap<String, String>();
response.put("message", "Bad Request");
return new ResponseEntity<Map<String, String>>(response, HttpStatus.BAD_REQUEST);
}
}
另请参阅:http://www.ekiras.com/2016/02/how-to-do-exception-handling-in-springboot-rest-application.html
关于spring-boot - 没有 Controller 类的 Spring Boot 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580371/