Я пытаюсь использовать специализированный подкласс в веб-приложении Spring для тестирования.Как сделать Spring, чтобы выбрать подкласс в ссылке собственности?
контекста приложения файлов XML ссылки на класс в свойствах в нескольких бина на полное имя класса, например:
<bean id="blahblah" class="x.y.z.Blah">
<property name="myFooAttribute" ref="x.y.z.Foo"/>
</bean>
, и я хотел бы создать экземпляр и использовать x.y.z.Bar
вместо x.y.z.Foo
, везде, где это используемый.
В моем тесте я использую конфигурацию на основе Java и импортирую конфигурацию XML (устаревшие вещи, которые я действительно не хочу слишком много крутить), поскольку это кажется более естественным, когда я собираюсь исправлять вещи и используя mocks, объявленный inline.
@Configuration
@ImportResource({
"classpath:applicationContext-common.xml",
"classpath:app-servlet.xml"
})
static class TestConfig {
static class Bar extends Foo {
//some stuff overridden here
}
}
Как я могу сделать все места, которые ссылаются на x.y.z.Foo
использовать мой Bar
класс вместо этого? Предпочтительно, не меняя xml-файлы ...
Просто добавьте фасоль типа 'Bar' и никого типа' Foo'? – chrylis
Бит 'Foo' не определен нигде, о котором я знаю, я думаю, что он просто создает одноэлементный компонент, поскольку он имеет конструктор по умолчанию без аргументов ... – fortran
, но, возможно, я ошибаюсь, я не очень хорошо знаком с этим весенним материалом ... в любом случае, я не хочу изменять исходную конфигурацию для своих целей тестирования, я хотел бы просто переопределить необходимые биты – fortran