Zookeeper迁移第一步

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)异步加载

在时机成熟的时候加载,但是肯定保证在调用之前

 

猜你喜欢

转载自hw1287789687.iteye.com/blog/2325622