spring boot session jdbc配置

 时间:2024-11-02 01:44:01

1、打开intellij idea软件,创建spring boot项目,添加maven依赖,代码如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>

spring boot session jdbc配置

2、修改application.properties配置文件,添加如下配置,配置连接池,session设置spring.datasource.url=jdbc:mysql://localhost:3306/testspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.jdbc.Driver#spring.session.jdbc.initialize-schema=embedded#spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-mysql.sql#spring.session.jdbc.table-name=SPRING_SESSION#spring.session.timeout=1logging.level.root = debug

spring boot session jdbc配置

3、根据org/springframework/session/jdbc/schema-mysql.sql中内容,添加数据库表,sql脚本如下CREATE TABLE SPRING_SESSION ( PRIMARY_ID CHAR(36) NOT NULL, SESSION_ID CHAR(36) NOT NULL, CREATION_TIME BIGINT NOT NULL, LAST_ACCESS_TIME BIGINT NOT NULL, MAX_INACTIVE_INTERVAL INT NOT NULL, EXPIRY_TIME BIGINT NOT NULL, PRINCIPAL_NAME VARCHAR(100), CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (PRIMARY_ID)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID);CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME);CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME);CREATE TABLE SPRING_SESSION_ATTRIBUTES ( SESSION_PRIMARY_ID CHAR(36) NOT NULL, ATTRIBUTE_NAME VARCHAR(200) NOT NULL, ATTRIBUTE_BYTES BLOB NOT NULL, CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK PRIMARY KEY (SESSION_PRIMARY_ID, ATTRIBUTE_NAME), CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_PRIMARY_ID) REFERENCES SPRING_SESSION(PRIMARY_ID) ON DELETE CASCADE) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;

spring boot session jdbc配置

4、创建了两张表,spring_session和spring_session_attributes两张表

spring boot session jdbc配置

5、注入一个TaskScheduler,用户清除过期session,代码如下@SpringBootApplicationpublic class SpringBootSessionApplication { public static void main(String[] args) { SpringApplication.run(SpringBootSessionApplication.class, args); } @Bean public TaskScheduler taskScheduler(){ return new ThreadPoolTaskScheduler(); }}

spring boot session jdbc配置

6、添加一个controller类,代码如下,调用HttpSession,@RestController@RequestMapping("/")public class TestController { @RequestMapping("") public String aaaa(HttpSession httpSession){ httpSession.setAttribute("user","zuli"); return "111111111"; }}

spring boot session jdbc配置

7、启动应用程序,打开浏览器,访问刚才编写的接口,如下图所示

spring boot session jdbc配置

8、session持久化到数据库了,如下图所示,两张表的内容展示

spring boot session jdbc配置
spring boot session jdbc配置
  • 香酥肉饼的做法
  • 淘宝主图9秒视频
  • 《无冬之夜 2:背叛者的面具》完全攻略指引书
  • 仓式氧气呼吸器和囊式氧气呼吸器的区别
  • 婴幼儿特应性皮炎都有哪些症状呢?
  • 热门搜索
    孝敬老人的手抄报 讲文明懂礼貌手抄报 我爱爸爸妈妈手抄报 绿色环保手抄报资料 关于父母爱的手抄报 绿色上网手抄报内容 校园安全手抄报资料 手抄报的内容 孝行天下手抄报 手抄报花边图片大全