- pom新增依賴:
<!-- https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.5.1</version>
</dependency>
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;
}
}
- 在application.properties上增加一下配置:項目id和appollo服務器地址
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的需要動態配置屬性複製過來就可以了,然後發佈。
- Appollo支持spring原來的註解方式,所以不管原來使用@ConfigurationProperties(prefix = "app")或者@Value("${spring.application.name}")方式,可以不用改變,甚至配置都不用去掉,配置值會直接被Appollo服務器上配置的值覆蓋。
題外話:使用@ConfigurationProperties註解如果希望使用@Autowired自動注入bean,可以在 @Configuration 類上加上
@EnableConfigurationProperties({ AppProperties.class }),當然也可以新建獲取方法實例化bean。
2、通過namespace我們可以做到區別配置,通過集羣可以做到同一個應用不同部署不同配置。apollo.cluster=xxx 和app.id=xxx一起配置不配置情況就是默認集羣。
以上是最簡單的配置方式之一,其他配置可以參考官方提供的demo。
參考:
- https://blog.csdn.net/lovelichao12/article/details/81013257
- https://gitee.com/nobodyiam/apollo/wikis/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97?sort_id=1296991#%E4%BA%8Cmaven-dependency