|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Уважаемый Blazkowicz, напишите один раз развернуто, не обрывками фраз :) 1.Blazkowicz Это имеет смысл если всю логику писать в контроллере. Тогда появятся поля, состояния и т.п. Если слоёв на сервере больше, то кроме контроллера, ведь, и другие станут scope request. А где писать логику? Есть уровни такие - на мой взгляд : page -> controller -> service -> dao -> database. Controller состояние не сохраняет, это singleton (ну или prototype, максимум - request scope). Service - тоже singleton? Service просто предоставляет возможности каких-то вычислений для поданных данных, открывает транзакции, делает запросы через dao в database. В dao - тоже не место для логики. Какой делать уровень для бизнес логики, для самого движка? 2. BlazkowiczДа. Только зачем это всё делать руками? А как это делать - объясните ж пожалуйста, а то какие то загадочные фразы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 14:29 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
oson, Controller(@Controller), Service (@Service), DAO (который @Repository) это все синглтоны, не нужно в них хранить состояние: обрабатывая страницу нас собственно говоря интересуют только входные и выходные данные, зачем в контроллере хранить информацию, если для это есть HttpSession (он собственно для этого и предназначен)? В сервисе как раз и находится бизнес логика, например PaymentService.transfer(Account fromAccount, Account toAccount, Double value), в принципе входных параметров достаточно для проведения платежа, лишние поля для сохранения информации тоже не требуется. У DAO аналогично. Создание объектов при областях видимости занимает время/ресурсы, будут проблемы с быстродействием. Если есть необходимость сохранять данные в сессии можно довольно просто написать класс по добавлению/получения в сессию объекта: - через RequestContextHolder.currentRequestAttributes().getAttribute("user", RequestAttributes.SCOPE_SESSION); - через HttpSession, который можно получить в методе контроллера osonА как это делать - объясните ж пожалуйста, а то какие то загадочные фразы. Используйте SpringSecurity ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 15:11 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Значит SpringSecurity - это не только проверка данных при авторизации и прав на какой-то ресурс, но и сохранение данных в сессии между запросами? То есть то, что в JSF реализуется при помощи session scope для managedBean. Я долго работал с JSF и поэтому пытаюсь в Spring в Spring использовать такой подход с session scope. Видимо это неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 20:07 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonЗначит SpringSecurity - это не только проверка данных при авторизации и прав на какой-то ресурс, но и сохранение данных в сессии между запросами? То есть то, что в JSF реализуется при помощи session scope для managedBean. Я долго работал с JSF и поэтому пытаюсь в Spring в Spring использовать такой подход с session scope. Видимо это неправильно. Всё тоже самое. managedBean\backingBean не является контроллером. Он реализует логику и хранит состояние. Контроллер, по задумке, логику реализовывать не должен. Поэтому он singleton. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 21:41 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonУважаемый Blazkowicz, напишите один раз развернуто, не обрывками фраз :) Попробуйте сконцентрироваться и задать конкретные вопросы. Трудно отвечать на сообщения вида "мне так кажется". osonpage -> controller -> service -> dao -> database. Controller состояние не сохраняет, это singleton (ну или prototype, максимум - request scope). Service - тоже singleton? Service просто предоставляет возможности каких-то вычислений для поданных данных, открывает транзакции, делает запросы через dao в database. В dao - тоже не место для логики. Какой делать уровень для бизнес логики, для самого движка? Service aka Transaction Script является частью Domain Model и реализует бизнес-логику. "движком", обычно называют фреймверк или API. Поэтому термин "бизнес логика движка" мне не понятна. У "движка" обычно своя достаточно уникальная логика, которая не относится ни к какой конкретной предметной области. osonА как это делать - объясните ж пожалуйста, а то какие то загадочные фразы. Вы в правильном направлении. Не храните всё подряд в session scope, а только то что там действительно нужно. Нет смысла писать свою security и использовать HttpSession, когда Spring Security уже реализует такой же механизм, а session scope позволяет привязывать данные к сессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 21:58 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Буду разбираться с Spring Security. Бизнес логику обычно реализую в service лайере. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 23:04 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonв service лайере.в сервисном вруне что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 13:20 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
chpashaosonв service лайере.в сервисном вруне что ли? ???? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 19:35 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonchpashaпропущено... в сервисном вруне что ли? ???? service лайер это service liar т.е. лгун, врун, брехун. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 19:41 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Service layer - так лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 13:42 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonService layer - так лучше? лучше по русски - слой сервисов или бизнес-логики) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 13:45 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Могу по-украински - кому английский не подходит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 13:51 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonМогу по-украински - кому английский не подходит :) дык, алкоголь главное "не мешать" )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 13:54 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonService layer - так лучше?гораздо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 14:44 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
"Blazkowicz Подскажите пожалуйста где можно посмотреть пример использования Spring Security для работы с session и хранением в ней Data value. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:54 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
osonНу вопрос возник по такой причине У меня есть session scoped объект Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Когда user залогинился, этот UserManager делает запрос через service в бд и если такой user есть то сохраняет его как свое поле. Теперь когда user переходит по другим линкам, я хочу проверять, есть ли этот loggedUser еще или нет. Поэтому удобно сделать Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Но если у Controller не указан http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-factory-lookup-method-injection, то есть singleton по умолчанию, то я не могу сделать inject session scoped UserManager. ........ То есть для этого мой контроллер должен быть session/request scoped.вообще говоря можно ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 07:45 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2013, 21:27 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Доброго времени суток! При выполнении интеграционных тестов возникает подобная ошибка, только scope области видимости request (@RequestScope) Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 08:59 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Hubertanyan, Так русским по белому написано, что у вас не поднят контекст Request (ну или не виден). Если это Spring, то надо смотреть, какие контекст поднимается при тесте... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 12:54 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
mad_nazgul Hubertanyan, Так русским по белому написано, что у вас не поднят контекст Request (ну или не виден). Если это Spring, то надо смотреть, какие контекст поднимается при тесте... Да, это Spring. Написано, что "ссылаетесь на атрибуты запроса вне реального веб-запроса, или обрабатываете запрос вне изначально полученного потока", что значит не поднят контекст "Request"? В контексте теста помимо всего прочего также внедряется/поднимается бин(тот, который помечен как @RequestScope). При запуске теста конкретно по классу (по одному классу интеграционного теста) - тесты выполняются. Если же запускать тесты "пакетно" (в пакете несколько интеграционных тестов ) - тесты не выполняются. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 15:25 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Hubertanyan mad_nazgul Hubertanyan, Так русским по белому написано, что у вас не поднят контекст Request (ну или не виден). Если это Spring, то надо смотреть, какие контекст поднимается при тесте... Да, это Spring. Написано, что "ссылаетесь на атрибуты запроса вне реального веб-запроса, или обрабатываете запрос вне изначально полученного потока", что значит не поднят контекст "Request"? В контексте теста помимо всего прочего также внедряется/поднимается бин(тот, который помечен как @RequestScope). При запуске теста конкретно по классу (по одному классу интеграционного теста) - тесты выполняются. Если же запускать тесты "пакетно" (в пакете несколько интеграционных тестов ) - тесты не выполняются. Что значит "запускать пакетно"? Вы под gradle или maven запускаете тесты? Если да, то надо смотреть настройки запуска тестов под системами сборки. Т.к. вы говорите, что в "одиночном" режиме тест проходит. То скорее всего, что при "пакетном" режиме тест выполняется в другом контексте, чем при одиночном. Скорее всего более специализированном. Например @DataJpaTest (это просто предположение). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 09:28 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
mad_nazgul Hubertanyan пропущено... Да, это Spring. Написано, что "ссылаетесь на атрибуты запроса вне реального веб-запроса, или обрабатываете запрос вне изначально полученного потока", что значит не поднят контекст "Request"? В контексте теста помимо всего прочего также внедряется/поднимается бин(тот, который помечен как @RequestScope). При запуске теста конкретно по классу (по одному классу интеграционного теста) - тесты выполняются. Если же запускать тесты "пакетно" (в пакете несколько интеграционных тестов ) - тесты не выполняются. Что значит "запускать пакетно"? Вы под gradle или maven запускаете тесты? Если да, то надо смотреть настройки запуска тестов под системами сборки. Т.к. вы говорите, что в "одиночном" режиме тест проходит. То скорее всего, что при "пакетном" режиме тест выполняется в другом контексте, чем при одиночном. Скорее всего более специализированном. Например @DataJpaTest (это просто предположение). Тесты запускаются через maven и через конфигурацию JUnit - в "одиночном" режиме тест проходит. Так при "пакетном" режиме тест должен поднимать тот же контекст, который указан в самом тесте? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:43 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
Hubertanyan mad_nazgul пропущено... Что значит "запускать пакетно"? Вы под gradle или maven запускаете тесты? Если да, то надо смотреть настройки запуска тестов под системами сборки. Т.к. вы говорите, что в "одиночном" режиме тест проходит. То скорее всего, что при "пакетном" режиме тест выполняется в другом контексте, чем при одиночном. Скорее всего более специализированном. Например @DataJpaTest (это просто предположение). Тесты запускаются через maven и через конфигурацию JUnit - в "одиночном" режиме тест проходит. Так при "пакетном" режиме тест должен поднимать тот же контекст, который указан в самом тесте? А вот это не факт. Иногда наблюдал, что тест работающий в IDEA и тест работающий в maven это немного разные тесты. Связано это с тем, что IDEA "умная" и немного по своему собирает артефакты. Попробуйте запустить одиночный тест через maven, посмотреть что получиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 11:44 |
|
Session scope для Controller?
|
|||
---|---|---|---|
#18+
mad_nazgul Hubertanyan пропущено... Тесты запускаются через maven и через конфигурацию JUnit - в "одиночном" режиме тест проходит. Так при "пакетном" режиме тест должен поднимать тот же контекст, который указан в самом тесте? А вот это не факт. Иногда наблюдал, что тест работающий в IDEA и тест работающий в maven это немного разные тесты. Связано это с тем, что IDEA "умная" и немного по своему собирает артефакты. Попробуйте запустить одиночный тест через maven, посмотреть что получиться. Через maven в "одиночном" режиме тест тоже проходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 12:13 |
|
|
start [/forum/topic.php?fid=59&msg=38213396&tid=2120760]: |
0ms |
get settings: |
16ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
40ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
380ms |
get tp. blocked users: |
0ms |
others: | 307ms |
total: | 755ms |
0 / 0 |