我將用一個父上下文創建多個Spring上下文。 這裏是我要如何創建父上下文:Spring上下文層次結構
new ClassPathXmlApplicationContext(new String[] {"ApplicationContext/application.xml"})
而且每個家長方面,我想在下面的方法來創建:
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
configurer.setProperties(properties);
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(appContext);
context.addBeanFactoryPostProcessor(configurer);
context.setConfigLocation("ApplicationContext/beans.xml");
context.refresh();
的想法是有相同的多個子上下文每個bean中的bean層次結構(DAO,服務,數據源,事務管理器等)。有幾個上下文的原因是需要有幾個不同的數據源(實際上每個應用程序上下文一個)。每個數據源的數據庫結構都是相同的。 所以,有一些問題。
- 這樣的上下文層次結構安全嗎?例如,如果有30個子上下文?
- 跨孩子上下文bean可見性呢?說,我有CustomerService bean聲明@Component註釋與幾個自動裝配的DAO依賴項。 Spring會在特定的子環境中執行自動裝配和其他DI操作嗎?
- 此外,我將使用以下方法從子上下文中查找bean: childContext.getBean(CustomerService.class);我是否從這個特定的子上下文獲得客戶服務,而不是其他子上下文?我知道,那個春天的單身人士是每個應用程序的單身人士,但仍然不確定。
PS。 還有另一種方法來處理here所描述的多個數據源。但是這種方法對我來說似乎並不方便。
我注意到你的用例和我的完全一樣。 –