Автопроводка не работает внутри методов обратного вызова - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь пролететь на демонстрации по миграции. В котором я могу перенести код. Я расширил BaseFlywayCallback и хочу напечатать информацию о миграции до и после каждой миграции. У меня есть код в другом классе обслуживания для печати информации. Я автоматически подключаю его, но он там не работает. Я пробовал другие способы, но ничего не стоило.

  @Autorired
  PrintInfoService service

Как я могу это сделать?

1 Ответ

0 голосов
/ 28 января 2020

Внутренняя интеграция с flyway при весенней загрузке выполняется с помощью FlywayAutoConfiguration

. Он должен создать компонент Flyway, в котором он будет регистрировать все обратные вызовы, найденные в пути к классам. .

Я не могу проверить это, но вы, я полагаю, должны:

  1. Убедитесь, что ваш обратный вызов является пружинным компонентом
  2. Убедитесь, что пружина boot сканирует ваш бин и создает его экземпляр во время инициализации
  3. Поместите точку останова в FlywayAutoConfiguration s:
public Flyway flyway(FlywayProperties properties, DataSourceProperties dataSourceProperties,
                ResourceLoader resourceLoader, ObjectProvider<DataSource> dataSource,
                @FlywayDataSource ObjectProvider<DataSource> flywayDataSource,
                ObjectProvider<FlywayConfigurationCustomizer> fluentConfigurationCustomizers,
                ObjectProvider<JavaMigration> javaMigrations, ObjectProvider<Callback> callbacks)
... И убедитесь, что ваш обратный вызов находится в списке бинов, распознанных весной.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...