2、使用@EnableApolloConfig使能appollo配置,可以在入口类增加注解,或配置类
如果有多个namespace,可以直接标明如@EnableApolloConfig({"TEST1.COMMON", "application"})
@EnableApolloConfig
@SpringBootApplication
public class App {
public static void main(String[] args) throws Exception {
SpringApplication.run(App.class, args);
}
}
或
@EnableApolloConfig
@ConfigurationProperties(prefix = "app")
public class AppProperties {
3、增加监听类,使用EnvironmentChangeEvent或RefreshScope
如果有多个namespace,可以直接标明如:@ApolloConfigChangeListener({"TEST1.COMMON", "application"})
@Service
public class AppolloConfigListener implements ApplicationContextAware {
private ApplicationContext applicationContext;
@ApolloConfigChangeListener
private void onChange(ConfigChangeEvent changeEvent) {
this.applicationContext.publishEvent(new EnvironmentChangeEvent(changeEvent.changedKeys()));
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
app.id=myappid
# set apollo meta server address, adjust to actual address if necessary
apollo.meta=http://192.168.2.229:8080
然后打开appollo管理页面(http://192.168.2.229:8070/)地址使用你的服务器地址,新增项目,配置内容。
使用文本的方式,把原来application.properties的需要动态配置属性复制过来就可以了,然后发布。
题外话:使用@ConfigurationProperties注解如果希望使用@Autowired自动注入bean,可以在 @Configuration 类上加上
@EnableConfigurationProperties({ AppProperties.class }),当然也可以新建获取方法实例化bean。
2、通过namespace我们可以做到区别配置,通过集群可以做到同一个应用不同部署不同配置。apollo.cluster=xxx 和app.id=xxx一起配置不配置情况就是默认集群。
以上是最简单的配置方式之一,其他配置可以参考官方提供的demo。
参考: