如何自动在两个Java类之间进行方法映射?

问题描述

我有一个旧版springMvc项目,我想重构所有控制器以返回ResponseEntity对象,而不是返回认情况下返回的Model对象。

我正在寻找一种将Map类中的函数映射到ResponseEntity类的方法

我已经看到人们建议使用正则表达式作为重构所有方法解决方案。

就这种情况下使用正则表达式的优点/缺点,我需要了解您对将正则表达式作为解决方案实施的看法。

此外,如果您可以提出其他解决方案,也会有所帮助。

请查看附件代码以了解更多详细信息。

将模型对象返回到视图

@GetMapping("/getData")
    public String getData(Model model) {
       
        model.addAttribute("message","springMvc");
        
        return "viewPage";
    }

以json格式返回ResponseEntity对象

@GetMapping("/getData")
    public ResponseEntity<Map<String,String>>  getData() {

        Map<String,String> map = new  HashMap<>();
        map.put("message","springMvc");
       
        return  new ResponseEntity.Ok().body(map);
    }

解决方法

如果将来有人遇到此问题,我想分享一下,我已经找到了一种方便的方法,可以使用AST(抽象语法树)对代码进行重构,从而使您可以更好地控制代码与使用正则表达式进行比较。

您可以检查库存储库:

请注意,IDE和诸如SonarQube之类的静态分析工具都使用AST

,

正则表达式不能在您的上下文中使用。当然,有太多特殊情况需要更改,这不仅仅是更改字符串的问题。 JavaParser是一个很好的候选人。