Привет, ребята, надеюсь, у вас все хорошо!
Я был очень занят с момента моего последнего поста в блоге. Итак, этот пост является частью серии блогов плагинов Grails для весенней сессии, в которой будет рассказано о JDBC как о вашем хранилище данных.
В этом сообщении в блоге я объясню, как вы можете использовать JDBC в качестве хранилища сеансов. Чтобы использовать JDBC в качестве хранилища данных, вам необходимо создать две таблицы в вашей базе данных. Весенняя сессия не использует никаких инструментов ORM. Вам нужно будет создать две таблицы, одна для сеанса, а другая для атрибутов сеанса, и формат будет таким <ТАБЛИЦА СЕАНСА> и <ТАБЛИЦА СЕАНСОВ>_АТРИБУТЫ “.
CREATE TABLE SPRING_SESSION ( SESSION_ID CHAR(36), CREATION_TIME BIGINT NOT NULL, LAST_ACCESS_TIME BIGINT NOT NULL, MAX_INACTIVE_INTERVAL INT NOT NULL, PRINCIPAL_NAME VARCHAR(100), CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (SESSION_ID) ); CREATE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (LAST_ACCESS_TIME); CREATE TABLE SPRING_SESSION_ATTRIBUTES ( SESSION_ID CHAR(36), ATTRIBUTE_NAME VARCHAR(200), ATTRIBUTE_BYTES BYTEA, CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK PRIMARY KEY (SESSION_ID, ATTRIBUTE_NAME), CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_ID) REFERENCES SPRING_SESSION(SESSION_ID) ON DELETE CASCADE ); CREATE INDEX SPRING_SESSION_ATTRIBUTES_IX1 ON SPRING_SESSION_ATTRIBUTES (SESSION_ID);
Чтобы изменить хранилище данных, вам необходимо добавить свойство в свой Чтобы изменить хранилище данных, вам необходимо добавить свойство в свой
springsession.sessionStore=SessionStore.JDBC
Это установит JDBC в качестве вашего хранилища данных. По умолчанию он попытается подключиться к базе данных H2 . Давайте проверим некоторые свойства конфигурации со значениями по умолчанию.
Примечание: Некоторые из общих свойств, описанных в части 1. Они будут работать одинаково для хранилища данных JDBC .
springsession.jdbc.driverClassName="org.h2.Driver" // Driver class default is H2 driver springsession.jdbc.url="jdbc:h2:~/test" // JDBC Connection string springsession.jdbc.username="" // JDBC username. Default is "". springsession.jdbc.password="" // JDBC password. Default is "". springsession.jdbc.tableName="SessionData" // table name to store sessions springsession.jdbc.pool.maxActive=10 // Connection pool max active springsession.jdbc.pool.maxTotal=20 // Connection pool max total springsession.jdbc.pool.minIdle=3 // Connection pool min idle springsession.jdbc.pool.maxWaitMillis=10000 // Connection wait time springsession.jdbc.pool.defaultAutoCommit=true // autocommit true by default springsession.jdbc.pool.defaultReadOnly=false // read only sessions springsession.jdbc.pool.defaultTransactionIsolation=Connection.TRANSACTION_READ_COMMITTED // transaction isolation springsession.jdbc.pool.validationQuery="SELECT 1" // Validate connection query
По умолчанию он использует сериализацию Java. Чтобы использовать сериализацию JSON, пожалуйста, посетите первый блог этой серии. Первые 2 шага будут такими же, но через 3 й шаг Зарегистрируйте мой класс модуля с помощью плагина spring-session вам придется использовать конкретное свойство JDBC jackson.modules
.
springsession.jdbc.jackson.modules = ['demo.SimpleModule']
Оригинал: “https://dev.to/jeetmp3/spring-session-grails-plugin-part-3-5b3l”