吴密的博客

每天进步一点点
posts - 12, comments - 1, trackbacks - 0, articles - 1

系统启动时加载好吗?

Posted on 2010-02-23 17:20 xiaolang 阅读(173) 评论(0)  编辑  收藏

在我们现在系统的代码中,存在很多类似的代码,这个接口大家都应该认得,是spring预留的接口

在所有的bean加载完毕后执行。

   /** 
     * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
     */
    public void afterPropertiesSet() throws Exception {

      1. 从其他系统加载数据

      2.如果加载失败,直接抛异常,系统不启动
    }

在这个过程中,如果被加载的系统挂掉了,这个系统暂时就启动不了。

其实这是系统间的一种依赖,这样就要求系统A启动之后,系统B才能启动,1,2个系统还好说,如果系统多

了系统的启动顺序就比较难以控制,发布的难度就会增大(当然,系统的启动顺序不只光跟这个有关系)。

大家这样做的目的无非有(大家也可以补充):

1.性能方面的问题,某些数据相对来说是不经常变化的,当前系统只有很少一部分模块会使用这部分数据,

只需要系统启动的时候,到其他系统取一遍,放到内存中,减少远程调用的次数;

2.当前系统确实需要依赖另外一个系统的数据,如果没有这部分数据,系统将无法进行后续的业务;

对于第二种情况,确实是需要这样做的,如果是第一种情况,我们可以这样做

系统数据  a = null;

if(null == a){

    a =  系统B的查询结果

}

return a

 

如果有2个系统,这样做的话,单纯对第一种情况来说,这个2个系统是可以同时启动的,从一定程度上

降低了系统间的依赖;但是如果在启动时加载的话,就必须第一个系统成功的启动起来。


只有注册用户登录后才能发表评论。


网站导航: