Apollo单体项目properties配置搬迁

2019-06-20  本文已影响0人  吕小凯

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热部署即可.

上一篇下一篇

猜你喜欢

热点阅读