springboot项⽬中如何使⽤Apollo配置中⼼
为什么要使⽤Apollo
在开发应⽤的时候我们常常需要把⼀些属性抽取出来放在配置⽂件⾥⾯,⽅便后⾯根据需要进⾏修改。在没有使⽤配置中⼼之前,可能我们只是把配置都放在项⽬的配置⽂件下⾯,这样虽然是省事了不少,但也有⼀些缺点,⽐如想要修改配置的时候需要重新构建项⽬和重启服务、⽣产环境上⼀些敏感的配置容易泄露等等。
Apollo安装
这个可以上github,上⾯有详细的安装说明⽂档,,下⾯主要讲下在代码⾥⾯的使⽤
在项⽬l中引⼊apollo相关jar包
<dependency>
<groupId&ip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.4.0</version>
</dependency>
在配置⽂件(application.properties)中添加apollo相关配置
# apollo集成
# apollo 配置应⽤的 appid
app.id=test
# apollo meta-server地址,⼀般同config-server地址
#当前环境服务配置地址,⽣产环境建议⾄少双节点,可以填写多个逗号分隔,使⽤⼀个单独的域,如 (由nginx等软件负载平衡器⽀持),⽽不是多个IP地址,因为服务器可能会扩展或缩⼩。a=10.0.0.220:8080
#启⽤apollo配置开关
abled=true
#将Apollo配置加载提到初始化⽇志系统之前
apollo.abled=true
# apollo 使⽤配置的命名空间,多个以逗号分隔
apollo.bootstrap.namespaces = application
java代码中读取apollo配置的⼏种写法:
1. 通过@Configuration和@Value注解的⽅式,此种⽅式发布会⾃动刷新
@Configuration
public class JavaConfigBean1 {
@Value("${timeout:20}")
private int timeout;
public int getTimeout() {
return timeout;
}
}
2. 使⽤@ConfigurationProperties读取,此种⽅式发布不会⾃动刷新
@Configuration
@ConfigurationProperties(prefix = "xx")
public class JavaConfigBean2 {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3. 使⽤@ApolloConfig读取,此种⽅式发布会⾃动刷新
@ApolloConfig
private Config config;
@GetMapping("/test3")
public String test3(){
Set <String> propertyNames = PropertyNames();
propertyNames.forEach(key -> {
bootstrap项目});
String();
}
4. 使⽤@ApolloJsonValue读取,此种⽅式会⾃动刷新
@ApolloJsonValue("${jsonBeanProperty:[]}")
private List<User> anotherJsonBeans;
@GetMapping("/test4")
public void test4(){
anotherJsonBeans.forEach(item -> {
});
}
⾃动刷新就是改了配置中⼼的配置可以不⽤重启服务,常⽤的使⽤⽅式就以上这些,当然还有⼀些复杂的使⽤⽅式,⽐如动态数据源等实现⽅式可以看官⽅的demo

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。