Получение конфигурации контекста во время выполнения - PullRequest
0 голосов
/ 10 декабря 2010


У меня небольшая проблема с аннотацией @ContextConfiguration в Spring 3.0.4.Я хотел бы получить их во время выполнения через applicationContext (если это возможно).

Допустим, у меня есть этот класс:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"foo.xml", "bar.xml"})
public class Foo() extends AbstractTransactionalJUnit4SpringContextTests {
    @Before
    public void before() {
        //retrieve foo.xml and bar.xml here
    }
}

Это было бы полезно в моей ситуации, я смотрелв Интернете немного и не нашел много идей о том, как этого добиться, может быть, SO эксперты могут помочь мне в этом.

Спасибо

Ответы [ 3 ]

3 голосов
/ 10 декабря 2010

Мне не известно о наличии общедоступной утилиты для этого, но проще всего было бы вручную проанализировать аннотацию:

String[] locations = 
   Foo.class.getAnnotation(ContextConfiguration.class).locations();
0 голосов
/ 10 декабря 2010

Вы не можете динамически указывать местоположения в аннотации @ContextConfig.Но вместо этого вы можете использовать TestExecutionListener вместе с соответствующей аннотацией.В beforeTestMethod () слушатель может получить ApplicationContext из TestContext и загрузить необходимые XML-файлы вручную.

Если вам нужны разные XML-файлы для каждого теста, вам также следует вызвать TestContext.markApplicationContextDirty () в @После метода тоже.

0 голосов
/ 10 декабря 2010

Проверьте, поможет ли вам реализация интерфейса ApplicationContextAware . Это должно предложить вам доступ к контексту приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...