如何自动化两个 java 类 之间的方法映射?

How to automate Methods mapping between two java classes?

我有一个遗留的 springMvc 项目,我想将所有控制器重构为 return ResponseEntity 对象,而不是 returning 模型对象,它是 returned默认情况下。

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

我看到有人推荐使用正则表达式作为重构所有方法的解决方案。

我需要了解您对在这种情况下使用 Regex 的优点/缺点实施 Regex 作为解决方案的看法。

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

请查看附件代码了解更多详情。

return 模型对象到视图

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

return ResponseEntity 对象作为 json 格式

@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 是一个不错的选择。