【发布时间】:2020-11-25 15:58:17
【问题描述】:
我需要根据服务的某些条件重定向控制器中的每个操作。
示例:
@RestController
public class MyController{
@Autowired
private MyService myService;
@GetMapping("/action1")
public String action1() {
if(myService.checkIfError()) {
return "redirect:/error";
} else {
// specific code of action1
}
}
@GetMapping("/action2")
public String action2() {
if(myService.checkIfError()) {
return "redirect:/error";
} else {
// specific code of action2
}
}
}
action1 和 action2 上面的代码都有一些特定的代码,但部分代码 if(myService.checkIfError())return "redirect:/error";} 与所有操作相同。
谁能告诉我如何删除这个样板代码,以便保留特定于操作的代码?
【问题讨论】:
-
您可以通过使用一些查询参数或路径参数来区分实现。另一种方法可能是您可以将错误检查逻辑移动到单独的方法并在任何地方重用它。
-
请您演示答案的第一部分吗?错误检查逻辑已设置在服务中的“checkIfError”函数中。
标签: java spring-boot controller boilerplate