使用环境变量
场景描述
在java中调用外部服务时,开发环境和正式环境使用2个不同的地址
实现思路
使用环境变量实现。在dev.def.xml文件中定义开发环境中使用的环境变量,在production.def.xml文件中定义正式环境中使用的环境变量
实现步骤
1. 定义开发环境变量
- 在应用中使用,定义在service/main/deploy/dev.def.xml文件中
- 在组件中使用,定义在service/comp/组件名称/deploy/dev.def.xml文件中
- 在properties中定义property,设置name和value属性
2. 定义正式环境变量
- 在应用中使用,定义在service/main/deploy/production.def.xml文件中
- 在组件中使用,定义在service/comp/组件名称/deploy/production.def.xml文件中
- 将dev.def.xml文件中定义的环境变量复制过来,name属性不变,修改value属性
3. 在java中获取环境变量
使用本地IDE,需要重新连接云端,才能获取环境变量
环境变量名生成规则
- 在service/main/deploy/*.def.xml文件中定义的环境变量,前面加MAIN_
- 在service/comp/组件名称/deploy/*.def.xml文件中定义的环境变量,前面加COMP组件名称
- 名称全部变成大写字母
例如:在service/comp/basedata/deploy/dev.def.xml文件中定义
<property name="extUrl" value="开发环境"/>
生成的环境变量名称是:COMP_BASEDATA_EXTURL
在java代码中,使用System类的静态方法getenv()和getProperty()获取
之所以两个方法都需要调用,是因为在云端运行时(包括开发环境和正式环境),使用getProperty()获取,在本地IDE运行时,使用getenv()获取
4. 运行时的效果
打开日志跟踪,在云IDE中预览,查看Tomcat的输出
发布后,正式运行,在池中查看Tomcat的输出