Zookeeper迁移第一步:统一读取配置文件的入口
(1)之前读取配置文件的入口
(a)直接通过java.util.Properties 类读取file
(b)通过类:org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
在spring MVC配置文件中:
调用方法:
(c)
(2)如何区分不同的环境
通过sed命令
比如测试环境的域名是:test-aaa.bbb.com
线上部署时,就使用Linux sed命令把test-aaa.bbb.com 替换为aaa.bbb.com
也就是说,在部署时,会动态的修改源代码(java文件,html,js等)
(3)如何统一入口
不同的环境通过spring MVC读取环境变量来区分
之前是通过jekens任务来区分,不同的jekens任务执行不同的shell脚本.
我们现在需要通过spring MVC通过环境变量,来加载不同的properties文件
注意:环境变量sysType需要手动在linux系统设置
(4)依赖配置文件的类如何初始化
通过被动的方式,比如我们有一个配置类Configuration2,里面的配置原先是在static 语句块中读取file然后设置的.
现在改为通过spring MVC 来加载配置文件,所以存在一个问题:
Configuration2 初始化的时候,配置文件不一定读取完成,而且Configuration2 是不受spring MVC容器控制的,
因为Configuration2 不用实例化
所以我们的做法是:
在配置文件加载完成之后,主动去初始化Configuration2 中的配置项,比如域名.
(5)变量初始化的两种方式
(a)类加载的时候就初始化
这是原先老的方法
(b)异步加载
在时机成熟的时候加载,但是肯定保证在调用之前