介绍
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。
相关依赖
依赖项 说明 JAVA 1.7+ 项目开发运行环境 Guava 15.0+ apollo客户端默认会引用Guava 19,如果你的项目引用了其它版本,请确保版本号大于等于15.0 Apollo 1.1.0 Apollo依赖
Maven依赖
<!-- apollo 依赖 -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
<!-- guava 依赖 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
Apollo项目集成
项目配置文件设置
在项目META-INF下创建app.properties,确保确保classpath:/META-INF/app.properties文件存在。配置内容如下:
#app.id同apollo配置的appId
app.id=YOUR-APP-ID
#指定dev环境
env=DEV
apollo.meta=10.177.192.190:9100
使用API接入
通过上述的config.getProperty可以获取到someKey配置值。
public class Demo{
Config config = ConfigService.getAppConfig();
String someKey = "someKeyFromDefaultNamespace";
String someDefaultValue = "someDefaultValueForTheKey";
String value = config.getProperty(someKey, someDefaultValue);
}
使用Spring接入
通过Spring注入Apollo的Config对象进行使用,需要项目启动时增加
@Configuration
@EnableApolloConfig(order = 1)
public class JavaConfig {
@Bean
public ConfigJavaBean configJavaBean(){
ConfigJavaBean configJavaBean = new ConfigJavaBean();
return configJavaBean;
}
}
public class ConfigJavaBean {
@Value("${oneKey:defaultValue}")
private String oneKey;
@Value("${twoKey:22}")
private String twoKey;
public String getOneKey() {
return oneKey;
}
public void setOneKey(String oneKey) {
this.oneKey = oneKey;
}
public String getTwoKey() {
return twoKey;
}
public void setTwoKey(String twoKey) {
this.twoKey = twoKey;
}
}
使用Springboot接入
import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableApolloConfig
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
public class Demo {
@ApolloConfig
private JavaConfig config;
public String demo() {
String str = config.getProperty("name", "default");
}
}
关注公众号 soft张三丰
标签:String,oneKey,twoKey,class,开发,apollo,public From: https://blog.51cto.com/u_15501087/5834171