配置文件位置
Debug相关代码
分析源码
根据debug的最后一张图,可以看到,默认的配置文档目录windows为C:/opt/settings/server.properties,其它系统为/opt/settings/server.properties
结论
修改源码
private static final String SERVER_PROPERTIES_LINUX = "/opt/settings/server.properties";
private static final String SERVER_PROPERTIES_WINDOWS = "C:/opt/settings/server.properties";
为
private static final String SERVER_PROPERTIES_LINUX = "apollo-configuration.properties";
private static final String SERVER_PROPERTIES_WINDOWS = "apollo-configuration.properties";
编译后,即可以在工程目录下的apollo-configuration.properties读取配置文件
appid配置文件位置
同理把com.ctrip.framework.foundation.internals.provider.DefaultApplicationProvider下
public static final String APP_PROPERTIES_CLASSPATH = "/META-INF/app.properties";
修改为
public static final String APP_PROPERTIES_CLASSPATH = "apollo-configuration.properties";
即可在apollo-configuration.properties里面配置appid;
meta默认地址
修改com.ctrip.framework.apollo.core.MetaDomainConsts下
public static final String DEFAULT_META_URL = "http://config.local";
为
public static final String DEFAULT_META_URL = "http://localhost:8080";
编译源码后,这样在初始化就不需要设置dev_meta的值了
System.setProperty("dev_meta", "http://localhost:8080");
或idea启动参数
-Ddev_meta=http://localhost:8080
若公司使用到apollo,但没发现配置参数的地方,那就快看看公司引用的jar包上述的几个位置,肯定会有发现的
动手试验
- 使用源码:具体见调试环境搭建https://blog.youkuaiyun.com/sndayYU/article/details/97165983。
- 启动ConfigServiceApplication。
1)SimpleApolloConfigDemo去掉dev_meta变量,清掉缓存,运行,结果读不出timeout;
2)修改默认的meta,重新编译apollo-core,再跑SimpleApolloConfigDemo,结果能读出timeout的值