powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
10 сообщений из 10, страница 1 из 1
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438524
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть приложение(спринг+ хибернейт)

Хочу перед использованием пользователем приложения(при загрузке) проверить состояние базы данных и если оно не консистентно, выполнить какой-то код.

Вопрос: как отловить момент, когда бины уже все автоварены, то есть DI container уже инициилизировал всё.

Я полагаю это надо сделать как-то с использование интерфейса WebApplicationInitializer


а что там писать - абсолютно не понимаю.
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438526
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerХочу перед использованием пользователем приложения(при загрузке) проверить состояние базы данных и если оно не консистентно, выполнить какой-то код.
Вопрос: как отловить момент, когда бины уже все автоварены, то есть DI container уже инициилизировал всё.

Как эти два предложения связаны? Бины ведь могут инициализироваться лениво, например. Вам нужно только чтобы те классы, которые имеют отношение к работе с БД были проинициализированы?
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438531
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно"заавтоварить" все что нужно для проверки в отдельный бин, сделать ему @PostConstruct и сделать его не lazy, например.
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438547
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

у меня нет lazy бинов.

мне нужен один конкретный бин(@Service). чтобы он проинициализировался и соответсвенно все, от которых он зависит
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438551
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerмне нужен один конкретный бин(@Service). чтобы он проинициализировался и соответсвенно все, от которых он зависит
И в чем проблема? Выходит нужны не все бины в контексте, а только те, от которых зависит кокретный сервис. И @PostContruct - решение. Так?
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438561
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

получается, что да - решение)



Лагман, спасибо.

А если нужен момент, когда все бины проинициализированы?
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38438595
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

На момент выполнения postconstruct контекст ещё не полностью инициализирован, но все бины на которые ссылается текущий бин с postconstruct уже будут проинициализированы. Ну и "пользователь" не сможет влезть поперёк инициализации, т.к. вебконтекст ещё не готов, так что всё хорошо.
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38443135
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лагман,

а если вдруг этот бин является внешним(и final) и я не могу менять его исходный код. Как в таком случае быть?
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38443145
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerЛагман,

а если вдруг этот бин является внешним(и final) и я не могу менять его исходный код. Как в таком случае быть?
Сделать "оберку" - бин, который от него зависит и имеет PostContruct метод.
...
Рейтинг: 0 / 0
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
    #38443200
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]