session共享的原理比较简单,就是把session存入redis中,这样,只要IP地址一样,多个应用或者多个子域名下的session就是一样的。
先引入需要依赖的jar包:
![4ef0708d915a3910bd60108419385ec5.png](https://i-blog.csdnimg.cn/blog_migrate/5e0f90d0b07612991e58d8c25eeeb33f.jpeg)
然后创建配置类RedisSessionConfig
![ee8786682f7f1d901a2e4a7bd688778f.png](https://i-blog.csdnimg.cn/blog_migrate/e91c6e78cd72bfd6306fc682d8f1c9a7.jpeg)
![8a183196f69bad6c7e63712f8c0c3910.png](https://i-blog.csdnimg.cn/blog_migrate/e97cb9a0d91cba4efeb70f91ec38fad8.jpeg)
session共享的配置就算是完成了,这里要注意,application.yml里面要加一项参数配置,表明我们是用redis来实现session共享的,不然启动会报错。
![14801e8f78f52c390dba8cde57605bca.png](https://i-blog.csdnimg.cn/blog_migrate/9b478cb7559124934ab0e815f91a8625.jpeg)
我们来看看效果,项目启动端口设置为8888,配置三个域名指向8888
![5be03fbbddc1c1801bef60f0e60ac4ff.png](https://i-blog.csdnimg.cn/blog_migrate/1857e2823c1c3ac3b19d9fec188def67.jpeg)
运行项目,执行http://test2.fuzion.com/setSessionValue设置值,然后用另外两个域名取值
![ae9868bcf8d945b57ead9c4f12a5162f.png](https://i-blog.csdnimg.cn/blog_migrate/0fa3370ad84c978e56e55223b5898aea.jpeg)
![98c0602054de1c57532d1c31bb22b908.png](https://i-blog.csdnimg.cn/blog_migrate/7467a28d5e0becd05ac53e252ff8d032.jpeg)
![05b2309b9c3561d230bf26752c48f3cb.png](https://i-blog.csdnimg.cn/blog_migrate/6223018dfed731999f0528782f82bc83.jpeg)
从截图结果可以看到,test.fuzion.com取到了值,而http://local.cashbook.com没有取到值,因为我在项目中配置的共享域名是fuzion.com,只有这个域名的子域名才能共享。那么,多个应用效果怎么样呢,大家可以部署试试。