从事IT开发,难免会遇到升级维护的时候,往往也是这个时候最容易出现问题。

之前的上家公司不知道是谁定下的条文,升级的时候只升级修改的class文件,其他没有改动的文件不做修改。

其实在升级的过程中发生了很多的意外,研发莫名其妙,运维更是摸不着头脑。

这里举一个简单的例子:

Config.java

Config

 

Test.java

Test

 

运行Test.java 会打印什么结果呢?

Hello

 

没错,我们如果部署到环境中也是如此,cmd下输出结果

Hello1

 

以上也许你在生产环境中没有任何的问题,那么我们修改一下Config类呢?
don't

然后在eclipse中执行Test文件,结果肯定也应该是预想的效果:

Don't1

 

so right,如果此时我们需要升级了,按照修改哪个替换哪个的理论,那么我们只需要替换Config文件就行了,但是如果这样就升级完成了的话,

那么在cmd下会是什么效果呢?

Ok  let's go 》》》》

say1

 

发现问题没有,是不是预想的效果变了?那么所谓的修改哪里替换哪里的行为方式这个时候就失效了呢?

如果全量替换呢?

say2

这才是你想要的结果吧。

那么以后该如何升级呢?是不是打成war包会perfect呢?那么之前的同事,我们是不是无缘无故的浪费了很多回家睡觉的时间呢?