2009-09-23 56 views
2

有没有人尝试使用Spring加载多个层次上下文(父/子)?Spring - 如何加载新的层次上下文?

你能解释一下怎么做,因为我找不到足够的文档?

在此先感谢。

+0

在什么样的应用?带有servlet的webapp或独立应用程序? – skaffman 2009-09-23 12:58:55

+0

一个带有servlet的webapp ..我基本上想调出一个单独的库的上下文,以便我的web应用程序能够使用它的bean,但是库不应该将同样的命名bean注入到它自己的类文件中。 – peakit 2009-09-23 13:02:31

+0

人们对此有何看法? – peakit 2009-09-23 13:21:37

回答

1

Spring类ContextLoaderListenerContextLoader执行初始化webapp的应用程序上下文的任务,以及可选地关联另一个应用程序上下文作为父项。

尤其是loadParentContext()方法默认使用ContextSingletonbeanFactoryLocator,试图找到web应用程序的父上下文,但如果这不适合,那么你可以继承的ContextLoader(和的ContextLoaderListener)以编程方式找到您的图书馆的appcontext。

+0

Skaffman,我们还有非webapps的东西吗? 其次,你可否请我指点示例web.xml的层次结构设置? – peakit 2009-09-23 14:50:53

1

以第三方应用程序上下文为父项创建您的应用程序上下文。这样第三方应用上下文将无法看到你的bean,但你的应用上下文将能够看到由第三方库(它是父厂)创建的bean。

+1

无论你说什么都很好。但我需要一些关于如何做到这一点的用法。需要什么样的配置等(“如何”在这里很重要) – peakit 2009-09-23 14:52:01

2

好像我已经找到了如何做到这一点。(感谢“skaffman”帮助)

在web.xml中定义的上下文PARAM locatorFactorySelector和设置它的价值父上下文中的豆。 xml文件。默认情况下,搜索用于classpath *:beanRefContext.xml文件。

那就是它!

现在我需要看看如何让我的JUnits加载父上下文。应该很简单 - 只需将beanRefContext.xml文件放在同一个目录中,但可以查看。

相关问题