|
|
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, а какой scope у бинов в Service layer. То есть я ж не могу указать у него (в веб приложении) Код: java 1. 2. 3. 4. 5. 6. 7. Такой scope - session, request - может быть только у Controller? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 19:11:57 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
osonПодскажите пожалуйста, а какой scope у бинов в Service layer. То есть я ж не могу указать у него (в веб приложении) Код: java 1. 2. 3. 4. 5. 6. 7. Такой scope - session, request - может быть только у Controller? Почему? Скоуп какой укажете такой и будет. Другое дело в уместности. Так вот, если сервис stateless имеет смысл его сделать вообще синглтоном, Хотя сейчас создание объектов и GC заоптимизированы до не могу, так что не так уж и очевидно. Скоуп сешн - какой смысл? Это уже не сервис. Скоуп реквест - тоже редко имеет смысл, ну разве что в одной транзакции будут два вызова метода вашего сервиса и вам надо расшарить между вызовами какие то данные, но это bad design по определению, всяко лучше будет передавать в методы нужные параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 19:19:27 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
scope session и request работают в web application context. Если у вас бин создан в таком контексте то можно использовать такой scope. Service Layer aka Transaction Script обычно не имеет состояния. Session scope вообще под сомнением. Даже внутри одной сессии могут быть конкурентные запросы, поэтому нужно будет синхронизировать состояние. Request возможен, но смысла в этом не много. В случае service у вас выйдут плохо реюзабельные методы, потому что они будут зависеть от состояние, которое нужно не забывать устанавливать. Т.е. технически - можно. Практически - а зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 19:50:11 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
Есть же еще уровен Controller. Там уместно указать @Scope("request"). Но когда запрос от контроллера идет на Service - то как этот Service класс может отработать такой Scope? У него ж нет понятия про http вообще - запрос до него не доходит, только до Controller. Получается, что если для Service написать Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. то этот класс никогда не отработает такое поведение - то есть например если сделать 2 отдельных запроса со страницы и в первом назначить значение counter = 2, то во втором запросе ее значение так и будет 2 - хотя стоит scope = request. То есть такую аннотацию нт смысла ставить вообще в классе Service - правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 20:15:35 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
osonНо когда запрос от контроллера идет на Service - то как этот Service класс может отработать такой Scope? У него ж нет понятия про http вообще - запрос до него не доходит, только до Controller. Это решается на этапе инъекции в контроллер. osonто этот класс никогда не отработает такое поведение - то есть например если сделать 2 отдельных запроса со страницы и в первом назначить значение counter = 2, то во втором запросе ее значение так и будет 2 - хотя стоит scope = request. То есть такую аннотацию нт смысла ставить вообще в классе Service - правильно? Это странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 20:17:49 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
То есть должен во втором запросе быть counter = 0? Должна работать аннотация @Scope("request") для Service layer ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 21:31:47 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
Какой поставишь такой и будет, ну 3 раза же уже сказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 21:46:09 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
Так тестирую же и не работает - ставлю @Scope("request"), делаю 2 запроса со страницы (2 разные кнопки) - в первом устанавливаю переменную в 2 а вот втором ее читаю - она таки 2, не 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 13:30:06 |
|
||
|
Scope у Service класса
|
|||
|---|---|---|---|
|
#18+
osonТак тестирую же и не работает - ставлю @Scope("request"), делаю 2 запроса со страницы (2 разные кнопки) - в первом устанавливаю переменную в 2 а вот втором ее читаю - она таки 2, не 0. А контроллер тоже @Scope("request")? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 13:42:39 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=253&tid=2130337]: |
0ms |
get settings: |
21ms |
get forum list: |
30ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
41ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 336ms |
| total: | 552ms |

| 0 / 0 |
