1. apollo客户端springboot实战(四)

1.1. 前言

  经过前几张入门学习,基本已经完成了apollo环境的搭建和简单客户端例子,但我们现在流行的通常是springboot的客户端,所以这章还是来学习下springboot客户端如何和apollo整合
  接下来我来改造我自己的项目,我本来的项目接入的是spring config配置管理中心,读的git上的配置,它没有管理界面,功能也比较单一,所以我打算替换成apollo

1.2. 配置改动

springboot apollo配置 启动 springboot接入apollo_客户端

  1. 添加配置类,这个@EnableApolloConfig 也可以直接放在启动类上,我单独一个配置类起到一定隔离,不需要的时候把apollo这个相关包注掉或删掉
  2. 这是我原本的config配置

springboot apollo配置 启动 springboot接入apollo_客户端_02

  1. 现在先前的config配置完全注掉,添加个application.yml配置个基本信息,原来存在git上的配置则统一放apollo上去
  2. springboot apollo配置 启动 springboot接入apollo_spring_03

  3. 从1.2.0版本开始,如果希望把日志相关的配置(如logging.level.root=info或logback-spring.xml中的参数)也放在Apollo管理,那么可以额外配置apollo.bootstrap.eagerLoad.enabled=true来使Apollo的加载顺序放到日志系统加载之前,不过这会导致Apollo的启动过程无法通过日志的方式输出(因为执行Apollo加载的时候,日志系统压根没有准备好呢!所以在Apollo代码中使用Slf4j的日志输出便没有任何内容)-----这是官方原话,但我实际操作发现我用 apollo.bootstrap.eagerLoad.enabled=false根本没有日志打印,打了spring logo就没了,浏览器测试下接口通的,说明启动完成了,但日志不起效果,反而用true就有我自己系统日志了,所以我这里设了true
  4. 配置pom
<!-- 阿波罗配置中心 -->
 <dependency>
     <groupId>com.ctrip.framework.apollo</groupId>
     <artifactId>apollo-client</artifactId>
     <version>1.3.0</version>
 </dependency>
  1. 其他我们原先在application.properties中配置的属性全部移到appollo

springboot apollo配置 启动 springboot接入apollo_客户端_04

1.3. 总结

  阿波罗客户端的配置还是相当简单的,几乎没什么变动,如果有监听配置改动的需求,它还提供了一个监听注解@ApolloConfigChangeListener,想要完全了解apollo就去看看它的文档。