Java持续实践

持续学习 持续实践 持续输出

  • 博客(694)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

转载 Redis高并发高可用

https://xie.infoq.cn/article/51b6930655799b44fa9d2fc5f

2022-05-16 07:09:31 20

原创 某电商面试题 20220513

内存溢出与内存泄露的区别观察者模式与发布订阅模式的区别Seata 有哪些模式 ? AT 模式的流程 . AT 与TCC模式的区别如何分析java oom异常jvm 如何进行优化MySQL有哪些隔离级别, 脏读和幻读的区别.MySQL有哪些日志, 这些日志的特点 , 优缺点是什么分库分表是如何规划的, 原有的库的数据是怎么迁移的, 分库分表后怎么扩容.分库分表如何解决唯一id问题知道哪些分布式id生成的方法, 雪花算法生成id会有什么问题, 怎么解决eureka 的执行流程.

2022-05-13 19:32:21 189

原创 分库分表 路由策略与全局ID

分库分表支持的场景用户的角度 : 查询订单信息商家角度: 获取商家订单的角度.用户下单后, 可能查询多个表.根据一定的规则, 让同一个用户, 下单都落在同一个表中.路由key:根据用户id , 作为路由的key , 对表的数量进行取模.多库多表先找库, 再找表.先根据用户的id , 对数据库的数量进行取模, 再去找对应的表.在找对应表的时候, 除以表的数量, 再对表的数量进行取模, 防止根据库进行路由后, 只插入到某一个表中去.商户的路由策略:买家下完单之后, 发送订

2022-05-03 15:06:46 255

原创 分库分表之 垂直拆分与水平拆分

垂直拆分垂直拆分 : 把一个数据库, 拆分为多个数据库. 按不同的模块拆分.原来是一个模块 , 公用一个数据库的资源, 垂直拆分后, 各个模块的项目竞争的资源, 不存在了 .优点:减轻了原有单库的压力, 提高了每个数据库的分摊数据, 给每个库的 CPU 内存, 网络压力变小了业务更加清晰解耦系统扩展更加容易了缺点:系统复杂性增加了多个数据库的联表查询, rpc调用, 可能有超时之类的问题 .事务需要分布式事务处理单表的数据量很大, 垂直拆分也无法解决.水平拆分

2022-05-03 14:03:46 569

原创 手写spring 03 - Cglib 构造函数实例化对象

文章目录目标设计实现新增getBean接口定义实例化策略接口JDK 实例化Cglib 实例化创建策略调用测试测试有参的构造实例创建测试无构造函数的测试有构造函数实例化获取构造函数信息测试Cglib实例化测试Cglib的策略实例化目标实现有参构造函数实例化对象.设计参考Spring Bean的容器源码实现方式, 在BeanFactory中添加Object getBean(String name, Object... args)创建有参构造bean对象的两种方式基于jdk的DeclaredCons

2022-04-23 15:02:01 373

原创 手写spring02- 实现bean的定义 注册 获取

文章目录目标设计实现BeanDefinition 的定义单例注册接口的定义与实现定义bean工厂 BeanFactory抽象类定义模板方法 AbstractBeanFactory实例化Bean类 AbstractAutowireCapableBeanFactory核心类实现(DefaultListableBeanFactory)测试目标此文中实现了spring容器的粗略的版本https://javaweixin6.blog.csdn.net/article/details/124256888此节要实

2022-04-23 13:59:11 493

原创 手写spring- 创建简单bean容器

文章目录目标设计简易实现目标springbean容器的目标是用于定义 存放 和获取bean设计使用map来存放bean . map的key为 bean的名称, value为 bean的定义信息bean的定义: BeanDefinition . 用于获取这个bean的一些属性信息. 例如下图截取spring源码中, 部分的方法, 获取该bean是否是抽象的, 是否是单例的, 是否是原型的, 是否是懒加载的, 并且提供了一些set和get方法来设置bean 的属性和获取bean 的属性. 在

2022-04-18 19:29:13 541 2

原创 windows10 安装 gradle 与idea gradle的配置

下载gradle 的安装包下载地址https://download.csdn.net/download/qq_33229669/85159857系统环境变量配置配置GRADLE_HOME 和GRADLE_USER_HOME用于指明gradle的安装包地址和本地仓库地址path中新建 %GRADLE_HOME%\bin配置gradle的阿里云仓库地址在gradle的init.d文件夹中, 新建立init.gradle文件文件内容如下allprojects{ reposito

2022-04-17 09:37:45 46

原创 设计模式 访问者模式

文章目录访问者模式访问者模式实战访问者模式在相同的数据结构下, 增加容易变化的业务访问逻辑, 为了增强扩展性, 将易变的访问逻辑进行解耦的一种设计模式.访问者模式实战模拟学校中, 有老师和学生, 也有家长和校长这两种数据访问的模式.该设计模式的类图如下抽象用户类 Userpublic abstract class User { // 姓名 public String name; // 身份 学生: 重点班、普通班 | 老师: 特级教师、普通教师、实习教师

2022-04-04 15:56:45 473

原创 设计模式 模板方法模式

文章目录模板方法模式模板方法模式实战模板方法模式模板方法模式适用于统一了执行的顺序和基本策略, 但具体每一步如何实现, 由各自的方法去实现.模板方法模式实战模拟获取京东 , 淘宝, 当当网的数据. 虽然他们网站的结构不一样, 但获取数据的过程是一致的, 模拟登录, 获取数据, 对数据进行处理, 生成海报等.模板方法模式的uml图如下抽象类NetMall 如下public abstract class NetMall { protected Logger logger = Logge

2022-04-04 09:26:56 128

原创 设计模式 策略模式

文章目录策略模式策略模式实战不使用策略模式的写法使用策略模式的写法策略模式策略模式解决的场景是具有同类课替代的行为逻辑算法场景, 比如不同类型的交易方式, 不同类型的登录方式等. 使用策略模式进行行为的包装, 供外部统一调用.策略模式实战模拟电商网站的各种不同的优惠, 满减, 直减, 折扣, n元购.不使用策略模式的写法写法如下 . 直接if else判断即可.public class CouponDiscountService { public double discount

2022-04-03 17:43:58 492

原创 设计模式 状态模式

文章目录状态模式状态模式实战.不使用状态模式的写法使用状态模式的写法状态模式状态模式的情景: 状态模式用于一个行为下的多种状态的变更.例如活动的审核 , 上线 ,下线状态等.状态模式实战.模拟活动的编辑 ,上线 , 审批拒绝, 审批通过等. 并且有些状态的流转是不可行的, 比如编辑中, 到下线.创建tutorials-22.0-1 模块.定义状态的枚举package com.thc.design;/** * 类名称:Status * 类描述: 活动状态枚举 * * 创建时间

2022-04-03 15:29:03 358

原创 设计模式 观察者模式

文章目录观察者模式观察者模式实战不使用观察者模式写法观察者模式写法观察者模式观察者模式场景: 当一个行为发生时, 传递信息给另外一个用户接收做出相应的处理. 两者没有直接的耦合关联.观察者模式实战模拟汽车摇号的结果进行通知.创建 tutorials-21.0-0 模块.进行汽车摇号服务的模拟public class MinibusTargetService { public String lottery(String uId) { return Math.abs

2022-04-03 10:27:09 295

原创 设计模式 中介者模式

文章目录中介者模式中介者模式实战不使用中介者模式写法使用中介者模式写法测试验证中介者模式中介者模式使用的场景: 把复杂功能的重复调用, 中间添加一层包装, 对外提供简单, 易扩展的服务能力. 例如中间件组提供的统一的接口与服务等.中介者模式实战模拟jdbc连接数据库的操作. 使用中介者模式,手写一个简易版的mybatis.不使用中介者模式写法创建模块tutorials-19.0-0 创建JDBCUtil类该类是纯手写jdbc的过程.public class JDBCUtil {

2022-04-01 22:35:27 679

原创 设计模式 备忘录模式

备忘录模式使用备忘录模式的情景:一般用于版本的回退, 页面上临时配置的回退等操作.备忘录模式实战模拟记录各个版本配置信息, 并实现配置的回退, 前进等操作.uml图如下配置信息类@AllArgsConstructor@NoArgsConstructor@Datapublic class ConfigFile { // 版本号 private String versionNo; // 内容 private String content; // 时

2022-03-31 22:24:30 304

原创 设计模式 迭代器模式

文章目录迭代器模式情景迭代器模式实战迭代器模式情景在jdk中已经提供了迭代器模式, 用于集合的迭代遍历.实现Iterable 接口, 通过next的方式, 获取集合元素. 同时具备对元素的删除等操作. 优点是以相同的方式遍历不同数据结构的元素, 不用去关心迭代的数据的结构, 让使用者变得统一易用.迭代器模式实战模拟公司部门迭代.创建雇员类 .@AllArgsConstructor@NoArgsConstructor@Datapublic class Employee { //

2022-03-30 23:29:29 133

原创 设计模式 命令模式

文章目录命令模式情景命令模式实战不使用命令模式写法使用命令模式写法命令模式情景把逻辑实现与操作进行分离, 降低耦合方便扩展. 以数据驱动的方式命令对象, 使用构造函数传递给调用者. 调用者再提供相应的实现为命令执行具体的操作方法.命令模式实战模拟在餐厅中点餐交给厨师的场景.顾客只需点不同的菜系, 店小二把不同的菜系写菜单上, 通过菜单下命令, 不同的厨师进行炒菜.不使用命令模式写法public class XiaoEr { private Logger logger = Logge

2022-03-29 21:24:19 357

原创 设计模式 责任链模式

文章目录责任链模式场景责任链模式实战不使用责任链模式的写法使用责任链模式的写法责任链模式场景用于解决一组服务中的先后执行处理关系, 例如出差补贴, 不超过100的组内领导审批, 超过100不超过200的,先组内领导审批接着部门领导审批, 超过200不超过300 的, 从组内领导 到部门领导, 再到公司领导挨个审批.责任链模式实战模拟上线的三级 二级 一级 审批.平时用三级审批. 临近促销二级审批. 618, 双十一期间需要一级审批.不使用责任链模式的写法创建模块tutorials-16.

2022-03-28 22:33:58 567

原创 设计模式 代理模式

文章目录代理模式情景代理模式实战代理模式情景代理模式用于某些资源的访问, 对象的类 易用操作上提供方便使用的代理服务. 用到的一些组件会提供给你简单易用的方式控制原本需要编写很多代码进行使用的服务类.例如rpc框架, 在拿到jar包对接口的描述后, 会生成代理类, 当调用接口的时候, 通过代理类发出socket信息进行通信.mybatis框架, 只写了接口, 框架会在底层生成代理类去执行crud操作.代理模式实战模拟mybatis 生成代理类.类图如下编写自定义注解Select@

2022-03-27 15:49:32 366

原创 设计模式 享元模式

文章目录享元模式情景享元模式实战不使用享元模式的写法使用享元模式的写法享元模式情景享元模式主要在于共享通用对象,减少内存的使用,提升系统的访问效率。而这部分共享对象通常比较耗费内存或者需要查询大量接口或者使用数据库资源,因此统一抽离作为共享对象使用。享元模式实战模拟在商品秒杀场景下使用享元模式查询优化.商品活动信息是不变的, 变化的是库存信息.不使用享元模式的写法模拟活动信息和库存信息都从数据库中查询.创建tutorials-14.0-0 模块创建Activity活动类@Datapub

2022-03-27 14:00:47 1029

原创 设计模式 外观模式

文章目录外观模式 情景外观模式任务实战不使用外观模式的写法使用外观模式的写法 (行动)外观模式 情景外观模式用于降低调用方的使用接口的复杂逻辑组合。对服务中的通用性复杂逻辑进行中间件层包装,让使用方可以只关心业务开发。外观模式任务实战此案例是对接口的访问权限进行控制, 只对添加了白名单的人, 进行接口访问.不使用外观模式的写法创建tutorials-13.0-1项目白名单的创建方式如下. 直接在接口中进行白名单控制, 这样代码耦合度太高, 且每个接口都这样改的话, 工作量也大.pub

2022-03-26 18:29:45 675

原创 设计模式 装饰器模式

文章目录装饰器模式使用的情景装饰器模式使用的任务装饰器模式实战不使用装饰器模式写法使用装饰器模式写法 (行动)装饰器模式使用的情景在不改原有类的基础上, 给类新增功能.装饰器模式使用的任务单点登录模块, 一开始只是认证某个权限, 但随着业务的发展, 需要验证很多其他权限. 限定的任务是在不改变原有单点登录代码上 , 对验证权限进行扩展.装饰器模式实战创建tutorials-12.0-0模块.public interface HandlerInterceptor { boolean p

2022-03-26 11:45:07 371

原创 Java8 stream操作

list转map Map<String, Integer> map = list.stream().collect(Collectors.toMap(m -> m.getSkuNo(), m -> m.getOrderNum(), (k1, k2) -> k1));list中某个属性转list List<String> list = orderList.stream().map(m -> m.

2022-03-22 14:41:17 498

原创 设计模式 桥接模式

文章目录桥接模式桥接模式实战不使用桥接模式的写法使用桥接模式的写法桥接模式通过将抽象部分与实现部分分离 ,把多钟可匹配的场景进行组合.核心实现是A类中有B类的接口, 通过构造函数传递B类的实现, 这个B类就是桥.JDBC的多种驱动的实现, 业务实现中的多种类接口的同组过滤服务.桥接模式实战支付有支付宝和微信, 支付宝微信支付时也有密码验证 ,指纹, 人脸识别.那么他们相互组合, 一共有6种方式来进行支付.不使用桥接模式的写法创建tutorials-10.0-0模块.建立PayContro

2022-03-20 18:06:48 433

原创 设计模式 原型模式

文章目录原型模式介绍原型模式实战原型模式介绍原型模式用来解决创建重复对象, 这些对象创建的内容比较复杂, 可能涉及到到远程服务调用, 采用克隆方式创建此对象, 节省时间.原型模式实战需求背景: 给每个人创建试卷, 试卷的题目是相同的, 但需要选项不同, 防止作弊....

2022-03-20 13:03:54 64

原创 设计模式 单例模式

文章目录单例模式介绍单例模式的7种写法0. 静态类的使用懒汉模式 线程不安全的写法线程安全的懒汉模式 方法上全局加锁饿汉式单例模式单例模式 内部类的写法 线程安全 (推荐)双重检查的单例模式 (推荐)cas 加 AtomicReference 实现安全的单例枚举实现单例模式单例模式介绍系统中只允许创建一个对象.数据库的连接池.spring的单例bean配置类等单例模式的7种写法0. 静态类的使用public class Singleton00 { /** * 系统第

2022-03-20 13:03:40 222

原创 设计模式 适配器模式

文章目录适配器模式介绍适配器模式实战不使用适配器模式的写法使用适配器模式的写法mq消息适配接口适配适配器模式介绍把原本不兼容的接口, 进行改造, 让其进行统一适配, 方便各种形式的使用.开发中, 类似中台业务, 订单有很多的来源, 把接收订单的接口进行封装, 适配各种订单进入中台.适配器模式实战模拟MQ消息. 有开户消息 , 自营订单消息, 第三方店铺订单消息, 都要通过mq进行处理.粗暴的写法是每一个消息都写一个类处理. 而使用适配器模式后, 可以把消息进行统一字段封装, 放在一个类进行

2022-03-20 13:03:10 46

原创 设计模式 建造者模式

建造者模式介绍将多个简单的对象 , 一步步组装构建出一个复杂对象的过程.根据相同的 物料 ,不同的组装所产⽣出的具体的内容,就是建造者模式的最终意图,也就是:将⼀个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。建造者实战场景: 装修都需要吊顶, 涂料, 地板和地砖等. 不同级别的装修, 是不同的吊顶, 涂料, 地板和地砖组合.创建tutorials-6.0-0项目, 创建吊顶, 涂料, 地板和地砖pom如下<?xml version="1.0" encoding=

2022-03-17 21:52:08 193

原创 设计模式 抽象工厂模式

文章目录抽象工厂模式介绍抽象工厂模式的实战不使用抽象工厂模式的写法使用抽象工厂模式的写法定义适配接口创建不同集群缓存的实现创建代理类抽象工厂在Spring中的应用抽象工厂模式介绍抽象工厂模式是创建其他工厂的模式.一个标准(接口)有不同的实现.抽象工厂模式的实战案例是采用系统中有不同的缓存服务.对不同的缓存服务做适配.不使用抽象工厂模式的写法创建tutorials-5.0-0 模块pom中如下<?xml version="1.0" encoding="UTF-8"?><

2022-03-16 22:20:44 695

原创 设计模式 设计模式如何落地

资料来源https://www.bilibili.com/video/BV1uF411t7pK/?spm_id_from=333.788学习设计模式的共性问题 ;学的demo代码特别简单, 但是一到实际项目中就不知道咋用了.要避开特别简单的demo ,从实际业务场景中去学习.代理模式: 从模拟mybatis-spring中定义dao接口, 使用代理类的方式 ,操作数据库原理实现的场景.责任链模式: 模拟618 电商, 项目上线多级负责人审批场景.等等一系列的场景, 来实战设计模式.为什

2022-03-15 06:17:52 1082

原创 设计模式 工厂方法模式

文章目录工厂方法模式工厂方法模式实战不使用工厂方法模式的写法使用工厂方法模式的写法工厂方法模式定义: 是一种创建型模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型.案例: 多钟类型商品不同接口, 统一发奖服务搭建.工厂方法模式实战设定需求为 发放三种类型的礼品 视频网站充值卡, 优惠券, 实物商品.不使用工厂方法模式的写法创建tutorials-4.0-0模块pom中如下 <groupId>org.example</groupId>

2022-03-14 23:22:37 353

原创 设计模式 依赖倒置原则

文章目录依赖倒置原则依赖倒置原则实战使用依赖倒置原则进行改变案例中两种方式的类图依赖倒置原则定义:程序要依赖于抽象接口, 不要依赖于具体实现, 对抽象进行编程, 而不是对实现进行编程, 降低了客户与实现模块的耦合.高层模块不应该依赖底层模块, 都应该依赖抽象(接口 抽象类)上级找下级, 一般不会直接找你 ,而是通过助理等找到.下级去依赖上级的标准等. 上级出的标准, 不需要去关心下级如何去实现的. 降低上级的耦合性.spring的spi机制等.依赖倒置原则实战随机抽奖与权重抽奖.不使

2022-03-13 10:23:51 621

原创 设计模式 接口隔离原则

文章目录接口隔离原则接口隔离原则代码实战接口隔离原则的优化接口隔离原则在开源框架中的应用笔记来源https://www.bilibili.com/video/BV1pY41137TB/?spm_id_from=333.788接口隔离原则要求程序员尽量将臃肿庞大的接口, 拆分为更小和更加具体的接口.让接口中只包含客户感兴趣的方法.用更小的接口 更具体的接口处理业务.问题越小, 越容易被处理, 达到高内聚, 低耦合.接口隔离原则代码实战英雄联盟中, 每个英雄都有各自的一些技能定义一个技能接

2022-03-12 17:57:24 367

原创 设计模式 迪米特原则

文章目录迪米特原则迪米特原则 实战迪米特原则改造.迪米特原则理解在实际项目中, 设计原则用于做什么, 比一定非得符合某个规范.迪米特原则 :最少知道 , 减少依赖.降低类之间的耦合. 高内聚, 低耦合.迪米特原则 实战学生 老师 校长类原有的写法是直接在校长类Principal 中计算学生相关的数据.学生类package com.thc.design;/** * 类名称:Student * 创建时间:2022/3/11 6:51 */public class Student

2022-03-12 16:37:00 716

原创 设计模式 里氏替换原则

文章目录里氏替换原则里氏替换代码实战使用抽象类里氏替换代码实战学习资料来源https://www.bilibili.com/video/BV1rU4y1f7uy里氏替换原则定义: 继承必须确保超类所拥有的性质在子类中成立.实现了兼容性, 维护性, 扩展性. 实现某个类, 不能把父类的原有功能结构破坏掉 .生活中的例子 : 去宜家, 都是从一个方向进, 一个方向出. 去海底捞, 服务大都一致. 一流的公司做标准.里氏替换代码实战本例中使用储蓄卡和信用卡作为例子.储蓄卡和信用卡都有取现和

2022-03-10 19:48:22 62

原创 设计模式 开闭原则

文章目录开闭原则的定义开闭原则代码实战开闭原则的定义对扩展开放, 对原有的修改封闭.类似于封装好的jar包, 只能对其扩展功能, 不能对其jar包修改 .开闭原则代码实战需求: 计算圆的面积. 原有封装好的jar包中定义的π 是3.14, 但某个需求需要更高精度的π, 那么就需要对原有的计算圆面积的π进行扩展, 提高精度.接口: ICalculationAreapublic interface ICalculationArea { /** *计算面积 圆形

2022-03-09 06:51:52 46

原创 设计模式 单一职责

文章目录设计模式介绍单一职责原则设计模式介绍设计模式是什么 是系统服务的解决方案, 是逻辑开发中拿到共性问题设计模式学习的是思想.设计模式的分类 : 创建型模式 结构型模式 行为模式学习设计模式的方法: 设计模式最好的学习是根据案例学习 , 要先使用 ,再研究原理. 就像买汽车, 先跑起来, 再研究一下车的相关原理.单一职责原则单一职责原则 :一个类, 应该只有一个发生变化原因.并不是if else 更快, 而是因为设计模式不熟练.视频的例子 , 访客用户, 普通用户, vi

2022-03-09 05:49:27 67

原创 es 7.x 优化 面试题

文章目录面试题为什么要使用 ElasticsearchElasticsearch 的 master 选举流程?Elasticsearch 集群脑裂问题?Elasticsearch 索引文档的流程Elasticsearch 更新和删除文档的流程?Elasticsearch 搜索的流程?Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?GC 方面,在使用 Elasticsearch 时要注意什么?Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?在并发情况下,Elas

2022-03-05 10:39:17 143

原创 es 7.x 优化 重要配置

cluster.name , 值 elasticsearch , es集群的名称, 建议改成与所存数据相关的名称,ES 会自动发现在同一网段下的集群名称相同的节点.node.name , 值: node-1 , 集群中的节点名,在同一个集群中不能重复。节点的名称一旦设置,就不能再改变了。当然,也可以设 置 成 服 务 器 的 主 机 名 称 ,例如node.name:${HOSTNAME}。node.master 值: true , 指定该节点是否有资格被选举成为 Master 节点,默.

2022-02-27 20:09:20 447

原创 es 7.x 优化 内存设置

文章目录内存设置内存设置ES 默认安装后设置的内存是 1GB,对于任何一个现实业务来说,这个设置都太小了。如果是通过解压安装的 ES,则在 ES 安装文件中包含一个 jvm.option 文件,添加Xms Xmx命令来设置 ES 的堆大小,Xms 表示堆的初始大小,Xmx 表示可分配的最大内存,都是 1GB。确保 Xmx 和 Xms 的大小是相同的,其目的是为了能够在 Java 垃圾回收机制清理完堆区后, 不需要重新分隔计算堆区的大小而浪费资源,可以减轻伸缩堆大小带来的压力。假设你有一个 64

2022-02-27 19:49:08 177

gradle-7.4.2-bin.zip

gradle-7.4.2-bin.zip

2022-04-17

jdk-11.0.11_osx-x64_bin.dmg

jdk11 mac 版本 oracle官网下载的

2021-04-26

eclipse activiti的插件

eclipse中的activiti插件. 此插件可以成功安装到eclipse中. 安装教程文章https://blog.csdn.net/qq_33229669/article/details/81809137

2018-08-18

Another-Redis-Desktop-Manager.1.3.7.exe

Another-Redis-Desktop-Manager.1.3.7.exe 由于官网和码云上下载太慢, 因此上传,提供高速下载渠道。 比Redis Desktop Manager 更好用, 界面更美观

2020-07-14

eclipse插件豆沙绿主题

此资源为eclipse的豆沙绿主题,使用后,eclipse的主题可以变为绿色,保护眼睛.

2018-01-15

vagrant_2.2.6_x86_64.msi

由于vagrant官网下载vagrant_2.2.6_x86_64.msi非常慢, 因此提供下载

2019-10-31

FastDFS安装所需要的所有文件

搭建FastDFS集群,我们需要用到多个安装包,包括:FastDFS_v5.05.tar.gz、fastdfs-nginx-module_v1.16.tar.gz、libfastcommon-master.zip、nginx-1.6.2.tar.gz、ngx_cache_purge-2.3.tar.gz、apache-tomcat-7.0.47.tar.gz等

2018-12-09

tomcat集群session共享jar包

commons-pool-1.6.jar,commons-pool2-2.2.jar,jedis-2.2.0.jar,tomcat-redis-session-manager-1.2-tomcat-7.jar tomcat集群,实现session共享

2018-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除