使用 Spring Framework 设计和开发 SCA 组件,第 2 部分: 使用 Apache Tuscany 的高级技巧
2010-02-25 00:00:00 来源:WEB开发网对于一个单应用程序上下文的场景,正如在 使用 Spring Framework 设计和开发 SCA 组件,第 1 部分:三剑客:Spring、SCA 和 Apache Tuscany 中所讨论的,Tuscany 运行时会尝试:
内省这个目标应用程序上下文定义文件以决定所声明的 SCA 服务、引用和属性。
使用适当的 Spring beans 为在这个目标应用程序上下文内声明的所有 SCA 引用和属性创建一个 SCAParentApplicationContext。
之后,将 SCAParentApplicationContext 声明为父上下文,使用 org.springframework.context.support.GenericApplicationContext 创建这个目标应用程序上下文的实例。
在一个含多种应用程序上下文的场景中,如 图 1 所示,Tuscany 运行时会尝试:
内省由 ClassPathXmlApplicationContext bean(在目标应用程序上下文中定义)的 constructor 参数标识的这列应用程序上下文文件(context1.xml、context2.xml 和 context3.xml)来决定所声明的 SCA 服务、引用和属性。
用适当的 Spring bean 为已标识的这列应用程序上下文文件内声明的所有 SCA 引用和属性创建一个 SCAParentApplicationContext。
之后,通过将 SCAParentApplicationContext 声明为其父上下文,为这列应用程序上下文文件创建一个 org.springframework.context.support.ClassPathXmlApplicationContext 实例。
在目标应用程序上下文上使用 ClassPathXmlApplicationContext bean 定义来提供对含多种应用程序上下文的场景的支持,这个内容超出了 SCA Spring 组件实现规范 V1.0 的建议。
不同于目标应用程序上下文内的 ClassPathXmlApplicationContext bean 定义,在应用程序上下文的层次结构内标识的任何一个 ClassPathXmlApplicationContext bean 定义都将被 Spring 运行时视为一个常规的 ClassPathXmlApplicationContext bean 并被相应处理。
更多精彩
赞助商链接