powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Scope у Service класса
9 сообщений из 9, страница 1 из 1
Scope у Service класса
    #38082498
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, а какой scope у бинов в Service layer. То есть я ж не могу указать у него (в веб приложении)

Код: java
1.
2.
3.
4.
5.
6.
7.
@Service("loginService")
@Scope("request")
@Repository
@Transactional
public class LoginServiceJpa   implements LoginService
{
   



Такой scope - session, request - может быть только у Controller?
...
Рейтинг: 0 / 0
Scope у Service класса
    #38082508
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonПодскажите пожалуйста, а какой scope у бинов в Service layer. То есть я ж не могу указать у него (в веб приложении)

Код: java
1.
2.
3.
4.
5.
6.
7.
@Service("loginService")
@Scope("request")
@Repository
@Transactional
public class LoginServiceJpa   implements LoginService
{
   



Такой scope - session, request - может быть только у Controller?
Почему?
Скоуп какой укажете такой и будет. Другое дело в уместности.
Так вот, если сервис stateless имеет смысл его сделать вообще синглтоном, Хотя сейчас создание объектов и GC заоптимизированы до не могу, так что не так уж и очевидно.
Скоуп сешн - какой смысл? Это уже не сервис.
Скоуп реквест - тоже редко имеет смысл, ну разве что в одной транзакции будут два вызова метода вашего сервиса и вам надо расшарить между вызовами какие то данные, но это bad design по определению, всяко лучше будет передавать в методы нужные параметры.
...
Рейтинг: 0 / 0
Scope у Service класса
    #38082545
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scope session и request работают в web application context. Если у вас бин создан в таком контексте то можно использовать такой scope. Service Layer aka Transaction Script обычно не имеет состояния. Session scope вообще под сомнением. Даже внутри одной сессии могут быть конкурентные запросы, поэтому нужно будет синхронизировать состояние.
Request возможен, но смысла в этом не много. В случае service у вас выйдут плохо реюзабельные методы, потому что они будут зависеть от состояние, которое нужно не забывать устанавливать.
Т.е. технически - можно. Практически - а зачем?
...
Рейтинг: 0 / 0
Scope у Service класса
    #38082571
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть же еще уровен Controller. Там уместно указать @Scope("request").
Но когда запрос от контроллера идет на Service - то как этот Service класс может отработать такой Scope?
У него ж нет понятия про http вообще - запрос до него не доходит, только до Controller.
Получается, что если для Service написать

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@Service("loginService")
@Scope("request")
@Repository
@Transactional
public class LoginServiceJpa   implements LoginService
{
   private long counter;

   
}



то этот класс никогда не отработает такое поведение - то есть например если сделать 2 отдельных запроса со страницы и в первом назначить значение counter = 2, то во втором запросе ее значение так и будет 2 - хотя стоит scope = request.
То есть такую аннотацию нт смысла ставить вообще в классе Service - правильно?
...
Рейтинг: 0 / 0
Scope у Service класса
    #38082574
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonНо когда запрос от контроллера идет на Service - то как этот Service класс может отработать такой Scope?
У него ж нет понятия про http вообще - запрос до него не доходит, только до Controller.

Это решается на этапе инъекции в контроллер.


osonто этот класс никогда не отработает такое поведение - то есть например если сделать 2 отдельных запроса со страницы и в первом назначить значение counter = 2, то во втором запросе ее значение так и будет 2 - хотя стоит scope = request.
То есть такую аннотацию нт смысла ставить вообще в классе Service - правильно?
Это странно.
...
Рейтинг: 0 / 0
Scope у Service класса
    #38082622
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть должен во втором запросе быть counter = 0? Должна работать аннотация @Scope("request") для Service layer ?
...
Рейтинг: 0 / 0
Scope у Service класса
    #38082631
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой поставишь такой и будет, ну 3 раза же уже сказали.
...
Рейтинг: 0 / 0
Scope у Service класса
    #38083388
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так тестирую же и не работает - ставлю @Scope("request"), делаю 2 запроса со страницы (2 разные кнопки) - в первом устанавливаю переменную в 2 а вот втором ее читаю - она таки 2, не 0.
...
Рейтинг: 0 / 0
Scope у Service класса
    #38083411
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonТак тестирую же и не работает - ставлю @Scope("request"), делаю 2 запроса со страницы (2 разные кнопки) - в первом устанавливаю переменную в 2 а вот втором ее читаю - она таки 2, не 0.
А контроллер тоже @Scope("request")?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Scope у Service класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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