接手了一个项目,项目启动的时候会加载海康威视的摄像头sdk,dll文件的路径地址是写死的,放在了d盘的某个目录下。顺便说一下,项目是部署在windows环境的。
这里有朋友会问,为什么会写死呢,原因我猜测可能是项目要的急,没时间做健壮性处理。后续做完以后没有出问题,可能也忘记了这里的一个坑。
生产环境是没有问题的,跑了大半年没有发现什么情况。
最近我接手以后增加了一些新功能,准备先在测试环境测试下然后再上线生产环境。于是向公司申请购买了一个阿里云的云服务器。
等到部署启动项目的时候,问题暴露了出来。项目启动加载d盘的dll文件,文件找不到,项目启动报错。
一番分析后找到了代码里的bug,那么要怎么处理呢。
这里有很多的解决方案,但是我遵循了几个原则。首先,生产环境不能有影响,而且尽量减少修改,不然会给现场运维人员增加工作量,带来部署的复杂度。然后测试环境因为是我自己部署的,所以可以想怎么改怎么改。尽量自己多干活儿,少麻烦别人。
所以我选择把写死的路径改成项目的配置项,如果配置没有则还是取原来的值,如果配置有那么取配置项的值。这样做的好处是生产环境不需要动配置项,还是取的原来的值。而测试环境我可以添加配置项,把路径指向阿里云有的c盘路径。
最后问题圆满解决。