嗨,我正在寻找
Eclipse中的解决方案/插件,以保持服务器端Java DTO属性和它们的客户端JSON对应在整个代码库的演变过程中保持一致.例如,对于具有Java后端的webapp,通过REST接口(使用Jackson)公开API,webapp可能在服务器上有类似的东西:
DTO:
public class Person {
private String firstName;
private String lastName;
public Person(String string, String string2) {
firstName = string; lastName = string2;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
REST服务:
@Path("/data")
public class PersonService {
@GET
@Path("persons")
@Produces(MediaType.APPLICATION_JSON)
public List<Person> getAssets() {
List<Person> persons = new ArrayList<Person>();
persons.add(new Person("Jimmy", "Hendrix"));
persons.add(new Person("Roger", "Waters"));
return persons;
}
}
在客户端,在Javascript / JQuery中,我们可以使用以下代码:
$.ajax(‘/ data / persons /’,function(data){
for(var i = 0; i< data.length; i){
var firstName = data [i] .firstName;
var lastName = data [i] .lastName;
//使用人员数据填充视图
}
});
这一切都很简单.但是,随着代码库的发展和变化(一如既往),假设需要将DTO字段的名称从“firstName”和“lastName”更改为“foreName”和“surName”.
在Eclipse中,使用Refactor菜单项重构所有Java代码很简单,该菜单项将在Java代码中找到方法/字段的所有引用,并替换它们.请注意,Eclipse的“Refactor …”与“查找/替换”操作不同.查找/替换会对指定的所有文件执行基本文本替换.另一方面,重构考虑到Java是强类型编程语言,并搜索具有该签名的所有方法调用.
如果有一些插件或Eclipse功能足够聪明,可以在Javascript代码中更改对“firstName”和“lastName”的引用,那将是很棒的.这样可以节省开发人员只需要为Java代码执行Refactor,然后在Javascript代码中进行选择性查找/替换,并减少潜在的运行时错误.有谁知道这样的工具/插件是否存在?
最佳答案 我也是.这似乎是我在每个工作中遇到的模式.
我过去做过的最好的事情是从java DTO生成Javascript存根,并使用JsDoc来指示这些javascript DTO的使用位置.
如果我今天也在做同样的解决方案,我可能会看到Swagger codegen会给我开箱即用的东西.
Intellij至少会突出显示javascript中缺少的字段,这很有帮助.
如果有一个插件会很棒,但这总比没有好.
使用打字稿,您甚至可以使用存根获得编译安全性.