Apollo安装完成后在Spring项目里面配置Listener监听器
如配置一个监听器如下:
<listener>
<listener-class>com.xiaokai.listener.StartupListener</listener-class>
</listener>
编写启动执行方法(增加打印方法用以调试,完成后可自行删除)
public class StartupListener extends ContextLoaderListener {
@Override
public void contextInitialized(ServletContextEvent event) {
System.out.println("项目启动");
String apolloEnvironment = System.getProperty("environment");
String apolloUsername = System.getProperty("name");
String apolloPassword = System.getProperty("password");
System.out.println("Apollo的帐号为:" + apolloUsername);
System.out.println("Apollo的密码为:" + apolloPassword);
System.out.println("Apollo当前配置环境为:" + apolloEnvironment);
ApolloConfigUtils.doApolloEnvironmentApi(apolloEnvironment, apolloUsername,
apolloPassword, "redxun.properties");
WebAppUtil.init(event.getServletContext());
super.contextInitialized(event);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
super.contextDestroyed(event);
}
}
原理:Web项目启动会优先加载监听器,然后通过Java Api方式获取到对应的Config配置信息注入到properties里面,这样就可以在程序每次启动前从配置中心拿到最新的数据.
不足:此方法不支持热部署,需要实现热部署请参阅properties热部署即可.
网友评论