程序包 com.fr.module.extension

Created by juhaoyu on 2018/3/15.

请参阅: 说明

程序包com.fr.module.extension的说明

Created by juhaoyu on 2018/3/15. activator的扩展接口,具体的activator可以实现这个包下的任意个接口,模块框架会在适当的时机去调用特定的方法 1、由于custom invoke-subs-strategy的存在,xml描述的顺序不能代表真正的启动顺序 (所以custom如果用在顶层模块的话,在activator中怎么启动的,就怎么在xml描述顺序,否则就是描述与实现不一致) 2、有些模块甚至是动态选择的(比如集群模块的单机模式和集群模式),即可能有的模块根本就不会运行 3、也就是说,没有办法在真正start之前确定都有哪些模块会启动以及启动的顺序 4、所以extension中的所有扩展方法,只要描述了都会执行,并且会按照xml中的描述顺序来执行 5、对于有可能不运行的模块,用它们的时候要小心 6、其他用custom的模块,最好保证启动顺序和xml中的描述顺序一致(比如DesignerStartup) 7、所有模块的last和next指针是完全基于xml中能够提供的信息来的,即:完全按照xml的描述顺序来连接平级模块(subs), 如果是custom的子模块调用策略,就说明父子没有先后顺序之分(子的启动同时是在父的启动内部了),这时按照父模块在前连接。 8、最好是父为custom的时候就不要用last和next,以及对应的收集对象的几个方法

总之: 最终的模块树是根据xml的书写结构和invoke-subs-strategy来决定的。有'上下''左右'的概念。 由于种种原因,invoke-subs-strategy=custom的时候父先还是子先的意义没有了,这时模块树的前后关系和真正的启动顺序就可能不一致了 就不要用与'左右'这个概念有关系的方法了。 Prepare是完全根据左右的概念来决定执行次序的,所以custom的时候想用prepare也要慎重 (是不是真的不一致具体判断)