Springboot整合Apollo

SpringBoot整合Apollo

官网地址:

https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

关键注解

  • @ApolloConfig注解:将Apollo服务端的中的配置注入这个类中。
  • @ApolloConfigChangeListener注解:监听配置中心配置的更新事件,若该事件发生,则调用refreshLoggingLevels方法,处理该事件。
  • ConfigChangeEvent参数:可以获取被修改配置项的key集合,以及被修改配置项的新值、旧值和修改类型等信息。

1、依赖

<!-- https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client -->
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>1.6.0</version>
</dependency>
<!-- 为了编码方便,并非apollo 必须的依赖 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.10</version>
</dependency>

2、YML

  • application.yml
info: #定义各种额外的详情给服务端显示
  app:
    name: "@project.name@" #从pom.xml中获取
    description: "@project.description@"
    version: "@project.version@"
    spring-boot-version: "@project.parent.version@"

apollo:
  bootstrap:
  	# 在应用启动阶段,向Spring容器注入被托管的application.properties文件的配置信息。
    enabled: true
    # will inject 'application' and 'TEST1.apollo' namespaces in bootstrap phase
    namespaces: application,hst.mysql,hst.redis,hst.ops,hst.eureka,hst.redisson,hst.rocketmq
    
logging:
  level:
    cn.com.hopson: debug # debug日志 方便本地/开发/测试环境的日志定位    

  • 在resources/META-INF/下创建app.properties
app.id=hopsonone-park-reduce

配置信息详情

# apollo 配置应用的 appid
app.id=springboot-apollo-demo1

# apollo meta-server地址,一般同config-server地址
apollo.meta=http://192.168.0.153:8080

# 启用apollo配置开关
# 在应用启动阶段,向Spring容器注入被托管的application.properties文件的配置信息。
apollo.bootstrap.enabled=true
# 将Apollo配置加载提到初始化日志系统之前。
apollo.bootstrap.eagerLoad.enabled=true

# apollo 使用配置的命名空间,多个以逗号分隔
apollo.bootstrap.namespaces = application,hst.mysql,hst.redis,hst.ops,hst.eureka,hst.redisson,hst.rocketmq

logging.level.cn.com.hopson:调整log 级别,为了后面演示在配置中心动态配置日志级别。

3、配置类

package cn.com.hopson.hopsonone.reduce.config;


import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableApolloConfig
public class AppConfig {}
posted @ 2020-07-07 23:21  SweetBaby。  阅读(303)  评论(0编辑  收藏  举报