确保classpath:/META-INF/app.properties文件存在,并且其中内容形如:app.id=YOUR-APP-ID
服务端的appid
应用在不同的环境可以有不同的配置, Environment可以通过以下3种方式的任意一个配置:
2.1 通过Java的System Property env来指定环境-Denv=YOUR-ENVIRONMENT2.2 通过操作系统的System Environment env来指定环境2.3 通过配置文件来指定env=YOUR-ENVIRONMENT对于Mac/Linux,文件位置为/opt/settings/server.properties对于Windows,文件位置为C:\opt\settings\server.properties目前,env支持以下几个值(大小写不敏感):DEV, FAT, UAT, PRO服务端的environment
Apollo客户端会把从服务端获取到的配置在本地文件系统缓存一份,当去服务器读取配置失败时,会使用本地缓存的。
Mac/Linux: /opt/data/{appId}/config-cache
Windows: C:\opt\data{appId}\config-cache
确保目录存在,且应用有读写权限。
6、代码接入
1.在微服务应用启动中使用apollo配置中心获取配置信息 打开应用对应的启动类Application,在启动类上加上如下注解:@EnableApolloConfig2.应用中获取配置信息的几种方式
2.1.通过@value注解获取配置值 例如: @Value(“${test}”) private String test; 2.2.通过@ConfigurationProperties注入到bean对象中获取配置信息 例如: @ConfigurationProperties(prefix=”test”) Public class Myprop{ private Map<String,String> prop = Maps.newLinkedHashMap(); } 在被spring管理的类中使用: @Autowired private Myprop myprop; prop.getProp().get(“name”); 注:使用这种方式获取的属性值不会实时更新。 2.3.通过@ApolloConfig获取注入的config对象,再通过config对象获取属性值 例如: 在被spring管理的类中使用: @ApolloConfig private Config config; config.getProperty(“name”,null); 2.4.通过java API的方式获取 Config config = ConfigService.getAppConfig(); String someKey = "someKeyFromDefaultNamespace"; String someDefaultValue = "someDefaultValueForTheKey"; String value = config.getProperty(someKey, someDefaultValue); 2.5.在配置文件中获取属性值 例如:在application.properties中, spring.datasource.name=${jdbc.name} spring.datasource.password=${jdbc.password}3.将配置信息迁移至配置中心: 打开配置中心客户端portal系统,找到对应的应用,在应用中配置相应的属性信息。 将对应的本地的配置信息删除(提前做好备份处理)。重启应用并测试,能正确读到配置项的内容,例如:数据库可以正常连接等;说明与配置中心对接成功。