2012-09-24 32 views
3

我在一個文件中配置了:applicationContext.xml。我有數據源,會話工廠和其他兩個bean。Spring上下文繼承

我想更改配置是這樣的:

  • applicationContext.xml -> parent,其中包含數據源,會話工廠
  • bean1.xml -> children,從的applicationContext繼承和包含bean1
  • bean2.xml -> children只有信息,從的applicationContext繼承並只包含有關bean2的信息

我該怎麼做?我發現有關繼承beans的信息,但我想要另外三個文件不是一個

回答

1

看看Spring中的import tag。你可以在bean1.xml和bean2.xml中使用它來導入你的頂級applicationContext.xml配置文件,這樣兩個配置在加載時就會分開。

0

原則上,應用程序上下文可以有一個父上下文,並且只是從那裏繼承所有的bean。不完全微不足道的(除非最近發生變化)是如何構建關係。

幫我:

http://blog.springsource.org/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/

(我在與筆者沒有隸屬關係)。

另一種方法是實際編寫代碼來執行此操作。如果您有Web應用場景,則可以擴展Spring的ContextLoaderListener並覆蓋loadParentContext:

public class ComponentParentContextContextLoaderListener extends ContextLoaderListener { 

    @Override 
    protected ApplicationContext loadParentContext(ServletContext servletContext) { 
     // load parent context .e.g from class path/static member 
     return ac; 
    } 

}