【发布时间】:2015-08-21 12:41:52
【问题描述】:
您好,我正在寻找 Eclipse 中的解决方案/插件,以在整个代码库的演变过程中保持服务器端 Java DTO 属性及其客户端 JSON 对应项的一致性。例如,对于具有 Java 后端的 Web 应用程序,其 API 通过 REST 接口(使用 Jackson)公开,该 Web 应用程序可能在服务器上具有以下内容:
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;
//do some stuff to populate the view with the person data
}
});
这一切都很容易设置。然而,随着代码库的发展和变化(正如它一直所做的那样),假设需要将 DTO 字段的名称从“firstName”和“lastName”更改为“foreName”和“surName”。
在 Eclipse 中,使用 Refactor 菜单项重构所有 Java 代码很简单,它将查找 Java 代码中方法/字段的所有引用,并替换它们。请注意,Eclipse 的“重构……”与查找/替换操作不同。 Find/Replace 对所有指定的文件进行基本的文本替换。另一方面,重构考虑到 Java 是一种强类型编程语言,并搜索具有该签名的所有方法调用。
如果有一些插件或 Eclipse 功能足够聪明,可以在 Javascript 代码中更改对“firstName”和“lastName”的引用,那就太好了。这将节省开发人员只需对 Java 代码进行重构,然后在 Javascript 代码中选择性地查找/替换的时间,并减少潜在的运行时错误。有谁知道这样的工具/插件是否存在?
【问题讨论】:
标签: java javascript json eclipse rest