Как объявить родительский контекст приложения

Я обнаружил, что использую два идентичных bean-компонента в моем applicationContext.xml и моем applicationContext-test.xml. Я бы хотел, чтобы мой тестовый контекст мог наследоваться от моего контекста приложения, чтобы не повторяться.

Я ' Мы видели много материала, показывающего, что вы можете объявить родительский контекст приложения и ссылаться на bean-компоненты из этого контекста, но я не могу найти полезного примера. Кто-нибудь может помочь?

Обновление В качестве некоторой справочной информации, мой обычный контекст приложения загружается в web.xml:

<context-param>
    <description>Application Contexts for Spring</description>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> 

Контекст моего тестового приложения загружен в мои модульные тесты:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext-test.xml")

Итак, допустим, у меня есть компонент в моем обычном контексте:

<bean name="someBean" class="com.foo.MyClass" />

Затем в контексте моего тестового приложения я хотел бы сослаться на этот bean-компонент. Как мне это сделать?

Обновление

По предложению скаффмана, я переместил компонент в файл SharedBeans.xml и импортировал его в свой applicationContext.xml. Однако это вызывает исключение SAXParser:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:SharedBeans.xml]
Offending resource: ServletContext resource [/WEB-INF/classes/applicationContext.xml]; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from class path resource [SharedBeans.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'bean'.
    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)

Я не могу быть уверен, что делаю неправильно. Компонент работал нормально в моем файле контекста, и все, что я сделал, это вырезал и вставил в новый файл. Вот полное содержимое SharedBeans.xml:

<bean name="properties" class="com.foo.Properties">
    <constructor-arg><value>${module.name}</value></constructor-arg>
    <constructor-arg><value>${businessUnit}</value></constructor-arg>
    <constructor-arg><value>${product}</value></constructor-arg>
    <constructor-arg><value>${env}</value></constructor-arg>
    <constructor-arg><value>${machineName}</value></constructor-arg>
    <constructor-arg><value>${collectionSet.company}</value></constructor-arg>
    <constructor-arg><value>${route.tag}</value></constructor-arg>
    <constructor-arg><value>${timeout}</value></constructor-arg>      
</bean>
8
задан Samo 1 December 2010 в 14:19
поделиться