|
|
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
Есть приложение(спринг+ хибернейт) Хочу перед использованием пользователем приложения(при загрузке) проверить состояние базы данных и если оно не консистентно, выполнить какой-то код. Вопрос: как отловить момент, когда бины уже все автоварены, то есть DI container уже инициилизировал всё. Я полагаю это надо сделать как-то с использование интерфейса WebApplicationInitializer а что там писать - абсолютно не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 15:41:19 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
questionerХочу перед использованием пользователем приложения(при загрузке) проверить состояние базы данных и если оно не консистентно, выполнить какой-то код. Вопрос: как отловить момент, когда бины уже все автоварены, то есть DI container уже инициилизировал всё. Как эти два предложения связаны? Бины ведь могут инициализироваться лениво, например. Вам нужно только чтобы те классы, которые имеют отношение к работе с БД были проинициализированы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 15:43:59 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
Можно"заавтоварить" все что нужно для проверки в отдельный бин, сделать ему @PostConstruct и сделать его не lazy, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 15:48:00 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, у меня нет lazy бинов. мне нужен один конкретный бин(@Service). чтобы он проинициализировался и соответсвенно все, от которых он зависит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 15:54:03 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
questionerмне нужен один конкретный бин(@Service). чтобы он проинициализировался и соответсвенно все, от которых он зависит И в чем проблема? Выходит нужны не все бины в контексте, а только те, от которых зависит кокретный сервис. И @PostContruct - решение. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 15:55:30 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, получается, что да - решение) Лагман, спасибо. А если нужен момент, когда все бины проинициализированы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 16:01:00 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
redwhite90, На момент выполнения postconstruct контекст ещё не полностью инициализирован, но все бины на которые ссылается текущий бин с postconstruct уже будут проинициализированы. Ну и "пользователь" не сможет влезть поперёк инициализации, т.к. вебконтекст ещё не готов, так что всё хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 16:15:54 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
Лагман, а если вдруг этот бин является внешним(и final) и я не могу менять его исходный код. Как в таком случае быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 11:16:36 |
|
||
|
Спринг. Запустить свой код в тот момент, когда все бины заавтоварены.
|
|||
|---|---|---|---|
|
#18+
questionerЛагман, а если вдруг этот бин является внешним(и final) и я не могу менять его исходный код. Как в таком случае быть? Сделать "оберку" - бин, который от него зависит и имеет PostContruct метод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 11:21:24 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38443145&tid=2128327]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
207ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 524ms |

| 0 / 0 |
