Java实体类字段类型修改,增量更新问题
如果项目使用增量更新,实体类字段类型有做修改,而业务类有引用到这个实体类,即使没有修改代码也需要将这个业务类重新编译放到增量更新的代码中。
下面是代码示例:
package com.test;
/**
* 实体类
*/
public class Apple {
private Integer weight; // change to Double
public Integer getWeight() {
return weight;
}
public void setWeight(Integer weight) {
this.weight = weight;
}
}
package com.test;
/**
* 业务类
*/
public class AppleService {
public void clone(Apple oldOne) {
Apple newOne = new Apple();
newOne.setWeight(oldOne.getWeight());
}
}
如果把实体类Apple的weight字段由Integer修改为Double,虽然业务类AppleSerivce的源码没有做修改,但是做增量更新时,这个AppleService业务类也需要重新编译同时放到增量更新的文件中。
因为AppleService的源码虽然没变,但是对应的字节码其实是有变化的。
可以看出这个AppleService的字节码已经发生了变化。
当然,如果是全量更新就不需要关心这个问题了。