apollo客户端springboot实战

Posted 老梁讲Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apollo客户端springboot实战相关的知识,希望对你有一定的参考价值。

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

1.1. 前言

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

1.2. 配置改动

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

  2. 这是我原本的config配置

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

  2. 从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

  3. 配置pom

 <!-- 阿波罗配置中心 -->
 <dependency>
     <groupId>com.ctrip.framework.apollo</groupId>
     <artifactId>apollo-client</artifactId>
     <version>1.3.0</version>
 </dependency>
  1. 其他我们原先在application.properties中配置的属性全部移到appollo

1.3. 总结

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

https://github.com/ctripcorp/apollo/wiki

以上是关于apollo客户端springboot实战的主要内容,如果未能解决你的问题,请参考以下文章

如何为 apollo 客户端生成片段类型?

Apollo 客户端片段不嵌入数据

使用 Apollo 客户端的片段组合:约定和样板

将 GraphQL 片段与 Apollo Hooks 一起使用时出错

Apollo Codegen 没有找到生成代码的操作或片段

SpringBoot 集成Apollo