Progressbar из контекста Spring?

Я хотел бы создать окно с индикатором выполнения, которое показывает текущий статус создания экземпляра объекта Spring. Из Spring.Net документация кажется, что IObjectPostProcessors - это правильная точка для запуска и отслеживания всякий раз, когда объект был создан. Однако, чтобы получить «Процент экземпляров классов», мне нужно попросить ObjectDefinitionCount фабрики Spring получить количество настроенных объектов. Однако это не работает до тех пор, пока создание контекста не будет завершено (похоже, также связана проблема Эта проблема).

Если невозможно использовать Spring для получения статуса запуска, как вы отображаете информацию во время запуска приложения для пользователя?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
613
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я могу предложить вам обходной путь, хотя он и не идеален, вероятно, это хорошая оценка.

  • Вы используете механизм постоянного хранения (файлы свойств, db, что угодно), чтобы отслеживать количество созданных bean-компонентов.
  • Вы используете IObjectPostProcessors для обновления количества инициализаций.
  • Очевидно, что при первом запуске значение будет 0.
  • В последующих запусках вы используете последний подсчет для оценивать количества инициализаций, которые должны быть выполнены.

Конечно, это неточно, но в большинстве случаев это дает хорошую оценку.

В настоящее время я использую ваш подход, но я посмотрю на то, что предложил Эрик Эйхингер. Спасибо!

tobsen 15.01.2009 17:52

Spring считывает конфигурацию в 2 этапа - сначала из конфигурации считываются все определения объектов, а во-вторых, эти определения обрабатываются, при необходимости создавая экземпляры синглтонов.

Вы должны получить то, что хотите, реализовав IObjectFactoryPostProcessor. ObjectFactoryPostProcessors - это первые объекты, экземпляры которых создаются раньше всего. На данный момент количество определений объектов уже доступно. Использование IObjectPostProcessor дает вам информацию о каждом создаваемом объекте.

Если вы получили количество определений объектов уже во время загрузки конфигурации, я думаю, это возможно, но Spring считывает конфигурацию за один проход. Вам нужно будет получить общее количество объектов, используя другую технику.

hth, Эрих

Другие вопросы по теме