联系
Knight's Tale » 技术

微服务下多个bunlde的交互问题

2015-11-19 22:32

spring启动时,会有一个父容器,然后根据有多少个 bundle 来生成 多个 子容器。每个子容器是并行的。是互相看不到对方的。但是他们都看得到父容器。

这里会出现一些问题

  1. 依赖的jar包中如果要获取spring容器,怎么办?直接获取父容器就可以了。
  2. 依赖的jar包中要扫描本容器的一些实现类,这在rpc框架中经常会遇到。这时依赖包如果还是使用父容器去获取bean就会找不到本容器的bean。因为父容器里没有子容器的数据啊。采取的办法是,依赖的jar要将所有context进行扫描(父容器和所有子容器),然后才可以获取bean.
  3. 自己的容器获取自己本身容器的context就行了。

总结起来,就是

  • 子容器只关心自己就好。
  • 依赖的jar包,如果需要扫描接口的所有实现类,则可能需要获取多个context