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

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

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

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


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

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

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

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

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



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

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

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

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

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

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


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