Может быть, вопрос не так ясен, но на примере, я думаю, я проясню это. В моем проекте есть два вида тестов: интеграционные и сценарные. Им обоим нужен источник данных (с пользовательским заполнителем свойств).
В контексте теста интеграции определите только источник данных и заполнитель, например:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="propertyResolver" class="com.cegeka.bibliothouris.test.MultiThreadedPropertyResolver">
<property name="location"><value>classpath:testContext.properties</value></property>
</bean>
В моем контексте тестового сценария мне также нужны эти объекты (вместе с некоторыми другими вещами), но я просто хочу создать контекст интеграции «в» моем контексте сценария, поэтому какое-то наследование.
Я уже пробовал это с classPathApplicationContext
в своем тестовом примере сценария (один раз с lazy-init на true), например так:
<bean class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
<value>classpath:overridingTestContext.xml</value>
</list>
</constructor-arg>
</bean>
Но он не создает dataSource
в контексте сценария. Это проблема, которую очень сложно найти в Google, поэтому я спрашиваю ее здесь. Я надеюсь, что у кого-то есть решение.