2016-07-08 2 views
0

Я изучаю структуру Spring-session для управления сеансом в нашем приложении, и мы хотим сохранить сеанс в базе данных. Я понимаю, что весна обеспечивает реализацию JDBC, и мы можем настроить наш собственный DataSource. Проблема, с которой я сталкиваюсь, заключается в том, что у нас нет прямого доступа к db и нужно сделать вызов веб-службы для выполнения каких-либо операций crud.Весенняя сессия с задним концом api вместо JDBC

Итак, есть ли способ интегрировать весеннюю сессию, чтобы потреблять веб-службы для сеансов, связанных с crud-операциями в db?

Другой вопрос: можем ли мы изменить схему для связанных таблиц. Я знаю, что мы можем изменить имена таблиц, но можно ли добавлять или удалять дополнительные столбцы в данных таблицах?

+0

Конечно, просто предоставляйте свой собственный репозиторий, но если вам нужно сделать вызовы веб-сервисов, не ожидайте, что он будет очень результативным ... –

ответ

0

Вы можете использовать свой собственный репозиторий сеанса довольно легко - использовать @EnableSpringHttpSession (который импортирует SpringHttpSessionConfiguration) для настройки общих компонентов Spring Session и зарегистрировать SessionRepository реализации @Bean.

Что касается более продвинутой настройки схемы, используемой JdbcOperationsSessionRepository, это было учтено во время реализации поддержки JDBC, однако было принято решение не предоставлять это на начальном этапе. Если вам нужна эта функция, рассмотрите возможность создания запроса функции в Spring Session issue tracker.

+0

спасибо за ваш ответ @Vedran, я выяснил JdbcOperationsSessionRepository и создал небольшой poc as Что ж. Тем не менее, использование веб-сеанса приостановлено, и мы можем использовать некоторую другую инфраструктуру, возможно, apache shiro вместе с аутентификацией. –

+0

Вы также можете использовать Spring Security для управления аспектами аутентификации и авторизации вашего приложения. Основное внимание Spring Session - это управление сеансом пользователя, и эти две функции хорошо работают вместе. В этом случае в проекте Spring Session есть [образец проекта] (https://github.com/spring-projects/spring-session/tree/master/samples/security). –