Java 避免代码重复Spring引导控制器
我有以下Java 避免代码重复Spring引导控制器,java,spring-boot,Java,Spring Boot,我有以下RestController(Spring boot2.0.4),其中有几种方法遵循相同的执行结构。它们可以指向不同的url,或者使用@GetMapping而不是@PostMapping进行注释: @RestController public class Controller { private final DataAccessLayer dal; @PostMapping("myUrl_1") execute(@RequestBody String param) {
RestController
(Spring boot2.0.4
),其中有几种方法遵循相同的执行结构。它们可以指向不同的url
,或者使用@GetMapping
而不是@PostMapping
进行注释:
@RestController
public class Controller {
private final DataAccessLayer dal;
@PostMapping("myUrl_1") execute(@RequestBody String param) {
try {
...
} catch (CustomException e) {
...
} catch (CustomException_2 e_2) {
...
} finally {
...
}
}
...
}
唯一的区别是param
用法和dal
用法
我的问题是,如何避免catch
和finally
子句中的代码重复???使用@ControllerAdvice
和@ExceptionHandler
您可以使用@ControllerAdvice
和@ExceptionHandler
@ControllerAdvice
:默认情况下@ControllerAdvice
将应用于使用@Controller注释的所有类。如果您想让它更具体,那么可以编写一些属性,如@ControllerAdvice(“my.org.package”)
@ExceptionHandler
:使用@ControllerAdvice
和@ExceptionHandler
提供全局错误处理。您可以编写注释@ExceptionHandler(IllegalArgumentException.class)
,它将处理IllegalArgumentException
的所有异常