Как получить объект `@ Autowired` в` SpringBootContextLoader`? - PullRequest
0 голосов
/ 06 января 2020

У меня есть следующее:

@Configuration
public class ConsorsCrucibleTestsConfiguration {
  public AtomicReference<Functions.FailableFunction<MergedContextConfiguration, ApplicationContext, Exception>> crucibleApplicationContextFunction() {
    return new AtomicReference<>(null);
  }
public class SettableApplicationContextLoader extends SpringBootContextLoader {
  public class SettableApplicationContextLoader extends SpringBootContextLoader {
  @Autowired
  private AtomicReference<FailableFunction<MergedContextConfiguration, ApplicationContext, Exception>> applicationContextFunction;

  // use `applicationContextFunction`
}
@SpringBootTest
@ContextConfiguration(loader = SettableApplicationContextLoader.class)
class CucumberStepsBase {
}

Но когда пришло время использовать applicationContextFunction, это null. Есть ли способ вставить его в загрузчик контекста?

1 Ответ

1 голос
/ 06 января 2020

Создание загрузчика контекста происходит до внедрения зависимости в ваше приложение. Если вы используете точки останова, вы увидите, что вы переходите в свой SettableApplicationContextLoader перед тем, как пройти через ваш ConsorsCrucibleTestsConfiguration метод бобов.

Чего именно вы пытаетесь достичь? Может быть, это могло бы быть лучшим началом.

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