我正在开发一个基于Spring的Web应用程序,我们有一些RestControllers和一些Request DTO类。请求DTO包含需要进行一些验证的令牌字段。所以我用spring验证器来验证。验证后,我们希望使用另一个REST API将该字段发送到外部系统(仅用于某种分析日志记录)。在多个DTO对象及其控制器中重复相同的字段。因此,我可以轻松地为验证器定义注释并在DTO中重用它们。但是我不确定如何在验证成功后处理该字段(即调用分析API以在验证后使用该字段),而不将其与控制器的核心逻辑混合。
我能想到的方法:
但是这些方法看起来并不清晰。有人可以推荐一种更好的方法吗?
提前致谢。
答案 0 :(得分:0)
您可以创建BaseController
并在那里实施该方法。在需要此日志记录服务的任何位置扩展此BaseController
。如下所示。
<强> BaseController.java 强>
class BaseController {
protected void remoteLogging(String name,String token) {
//Calling the remote log services}
}
<强> AppController.java 强>
@Controller
@RequestMapping("register")
public class LeaseController extends BaseController {
@PostMapping("new")
public String new(@Valid @ModelAttribute("registration") Registration registration,BindingResult result){
if(rest.hasErrors(){
remoteLogging("name","token");
}
}