- 博客(87)
- 收藏
- 关注
原创 WechatMall高仿商城
WechatMall前端微信小程序,后端springboot+mybatis+oraclesqlsql文件在sql文件夹内如何使用1.微信小程序的代码在/front/unpackage/dist/build/mp-weixin,用微信开发工具直接导入2.建立数据库2.修改后端代码的数据库配置部分3.启动后端代码效果展示登录需要授权获取用户信息才可以登录会员注册会员商城点餐添加购物车结算历史订单,可以看到刚刚支付成功的订单历史订单详情...
2020-07-09 09:55:31
446
原创 FastGateway网关
FastGateway网关网关定位支持http调用和rpc调用请求到来时执行:限流-黑白名单验证-签名验证解密body-通过code获取请求的api信息如果请求的是内部http接口(无code)执行:请求转发,调用结果加密,返回响应如果请求的是内部rpc的接口(有code)执行:检查api参数,远程调用,结果加密,返回响应数据库设计责任链模式接口限流服务降级,服务熔断黑名单白名单数字签名验证,解码body数据检查api信息检查api参数远程调用对应的接口
2020-06-14 17:27:28
915
原创 vue+netty+redis微信猜数对战小游戏
vue+netty+redis微信猜数对战小游戏GITHUB需求列表 微信登录 每小时一次领取积分1000 分享给好友赢1000积分,每微信账号一次 积分小于-10000不可进行游戏 排行榜rank100,实时更新 链接跳转github 游戏帮助信息 玩家轮流回合,随机玩家开始第一回合 玩家选择两个数之后可确定,若选中结果则游戏结束,未选中则依据情况提示(均偏大,均偏小,在两数之间) 玩家点击开始游戏匹配对手 游戏主体流程效果演示登录游戏:点击登录即可授权登录。会请求获取
2020-06-04 19:49:28
396
原创 log4j2+logstash+elasticsearch+kibana实现分布式日志收集系统!最快上手!
logstash+elasticsearch+kibana分布式集群日志收集系统logstash+elasticsearch+kibana分布式集群日志收集系统,超级详细!最快上手!名称版本kibana5.6.8elasticsearch5.6.8kafka2.11-1.0.0logstash6.2.3启动kafka,建立topiccd kafka解压后的目录内运行bin/zookeeper-server-start.sh config/z
2020-05-31 15:35:35
1207
原创 Shiro登录及权限管理
easyShirogithub地址使用shiro+springboot+mybatis实现简单的登录和权限管理,使用自定义权限注解实现权限管理。数据库表user字段名示例id1username1password1数据库表auth字段名示例id1username1roleuserpermissionuser:hi快速上手建立数据库配置数据库连接server.port=8080#shiro
2020-05-30 10:57:43
312
转载 TCP协议基础
TCPTCP首部结构详解TCP数据封装在一个IP数据报中:TCP数据在IP数据包中的封装。下图是TCP报文数据格式。TCP首部如果不计选项和填充字段,它通常是20个字节。TCP报文格式源端口和目的端口:各占2个字节,这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。有时一个IP地址和一个端口号也称为socket(插口)。序号:占4个字节,是本...
2020-04-14 17:12:07
212
转载 设计模式-建造者模式
一、为什么要用Builder模式Builder模式是为了弥补Java语言设计上的不足,话不多说,下面我们一起来看个栗子就知道啦!public class User{ String name; int age; String email; String address; public User(){ } //想要有名字和邮...
2020-03-25 20:14:45
109
原创 Redis实战(六)
搭建简单的社交网络用户和状态用户信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KNTuXOyw-1585137495711)(C:\Users\zhousheng42\AppData\Roaming\Typora\typora-user-images\image-20200204105842669.png)]def create_user(conn,...
2020-03-25 19:58:24
230
原创 Redis实战(五)
基于搜索的应用程序使用redis进行搜索基本搜索原理为获得更快的搜索速度一般会预处理,建立键索引,而我们要创建的结构被称为反向索引正向索引——从文档到单词Document_1: The cow says moo.Document_2: The cat and the hat.Document_3: The dish ran away with the spoon....
2020-03-25 19:57:50
203
原创 Redis实战(四)
使用Redis构建应用程序组件自动补全自动补全最近联系人,构建最近联系人自动补全列表def add_update_contact(conn, user, contact): ac_list = 'recent:' + user # 准备执行原子操作。 pipeline = conn.pipeline(True) # 如果联系人已经存在,那么移除他。 ...
2020-03-25 19:57:06
629
原创 Redis实战(三)
Redis数据安全与性能保障内存数据存储到硬盘中的主要原因是重用数据,为了防止系统故障而将数据备份,降低重复计算的成本。持久化方法方式快照snapshootting将存在于某一时刻的全部数据都存入到硬盘里只追加文件AOF(append-only file)在执行写命令时,将被执行的命令复制到硬盘里面save 60 1000 ...
2020-03-25 19:55:49
344
原创 Redis实战(二)
Redis命令字符串命令描述实例incrvalue自增1incr key-namedecrvalue自减1decr key-nameincrbyvalue自增指定整数incrby key-name amountdecrbyvalue自减指定整数decrby key-name amountincrbyfloatvalue自增一个浮点...
2020-03-25 19:55:07
219
原创 Redis实战(一)
第一章:Redis基础redis的存储类型结构类型存储值读写能力string字符串,整数或者浮点数操作字符串,对整数和浮点数自增或自减list每个结点都包含一个字符串的链表链表两端推入或弹出元素,依据偏移量修剪链表,读取单个或者多个元素,根据值查找或者移除元素set无序不重复的集合添加,获取,移除单个元素,检查元素是否存在,计算交并补,从集合里面随...
2020-03-25 19:54:32
208
原创 java代理模式
Java代理模式代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星...
2020-03-22 22:10:00
83
转载 设计模式-装饰器模式
装饰器模式//基础接口public interface Component { public void biu();}//具体实现类public class ConcretComponent implements Component { public void biu() { System.out.println("bi...
2020-03-21 22:48:51
95
原创 LinkedHashMap源码
LinkedHashMap源码public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{ /** * HashMap.Node subclass for normal LinkedHashMap entries. */ ...
2020-03-20 08:23:34
165
原创 AQS,CAS,volatile,synochrized,lock,ReentrantLock
VolatileCPU内的高速缓存会加快内存读取与写入数据的速度。程序运行的过程中会将运算需要的数据从主存复制一份到高速缓存中,那么当CPU进行计算时就可以直接从它的高速缓存中读写数据,等运算结束后再将高速缓存刷新到主存中。i = i + 1当线程执行这个语句的时候会先从主存当中读取i的值,然后复制一份到高速缓存,然后CPU执行加一操作,然后数据写入高速缓存,最后将高速缓存中i的最新值刷新...
2020-03-17 21:22:21
527
转载 web页面的请求过程
web页面的请求过程关键路径:打开浏览器,输入URL,连接服务器,渲染服务器返回的结果。那在这个过程中首先我们需要建立连接,也就是TCP三次握手,先开始第一次握手,也就是主机向服务器发送请求报文段,这就需要知道源IP,目的IP。申请源IP为主机申请IP:DHCP动态主机配置协议主机生成一个DHCP请求报文(应用层)放入UDP报文段(传输层),UDP报文段主要包含源端口6...
2020-03-16 15:44:28
370
原创 原型模式
设计模式-原型模式原型类public abstract class Shape implements Cloneable{ private String id; protected String type; abstract void draw(); @Override protected Object clone() { Obje...
2020-03-15 08:45:08
91
原创 MySQL隔离级别
事务特性原子性事务是一个原子操作单元,事务中包含的所有操作要么都做,要么都不做,没有第三种情况。一致性事务操作前和操作后都必须满足业务规则约束,比如说A向B转账,转账前和转账后AB两个账户的总金额必须是一致的。隔离性隔离性是数据库允许多个并发事务同时对数据进行读写的能力,隔离性可以防止事务并发执行时由于交叉执行导致数据不一致的问题。持久性事务完成后,对数据的修改是永久的,即使出现...
2020-03-14 21:59:23
82
原创 模板模式
设计模式-模板模式抽象类模板public class ConcreteA extends A { @Override public void f1() { System.out.println("ca"); } @Override public void f2() { System.out.println("ca");...
2020-03-14 10:02:03
97
原创 orm工具对比
hibernate特点完全面向POJO,不再需要编写SQL就可以通过映射关系来操作数据库,是一种全表映射的体现所以对于性能要求不太苛刻的系统,比如管理系统、ERP 等推荐使用Hibernate优点同时提供了日志、缓存、级联(级联比MyBatis强大)等特性,此外还提供HQL (Hibernate Query Language)对POIO进行操作,使用十分方便。对对象的维护和缓...
2020-03-13 23:41:49
1499
原创 设计模式-享元模式
享元模式Flyweightpublic interface Flyweight { public void operation(UnsharedConcreteFlyweight state);}ConcreteFlyweightpublic class ConcreteFlyweight implements Flyweight { private String...
2020-02-14 16:47:08
84
原创 设计模式-状态模式
状态模式对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。Statepublic abstract class State { public abstract void Handle(Context context);}ConcreteStateApublic class ConcreteStateA extends...
2020-02-03 14:50:29
101
原创 设计模式-责任链模式
责任链模式抽象Handlerpublic abstract class Handler { private Handler next; public Handler getNext() { return next; } public void setNext(Handler next) { this.next = next;...
2020-01-21 17:18:49
85
转载 Log4j2配置文件
Log4j2配置文件一、关于配置文件的名称以及在项目中的存放位置log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn".系统选择配置文件的优先级(从先到后)如下:classpath下的名为log4j2-test.json 或者log4j2-test.jsn的文件.classpa...
2020-01-18 11:24:39
354
原创 设计模式-命令模式
命令模式Receiverpublic class Receiver { public void action(){ System.out.println("执行请求!"); }}Commandpublic abstract class Command { protected Receiver receiver; public Co...
2020-01-17 10:24:44
68
原创 设计模式-适配器模式
适配器模式类适配器Adapteepublic class Adaptee { public void adapteeRequest(){ System.out.println("Adaptee method!"); }}Adapterpublic class Adapter extends Adaptee implements Target {...
2020-01-15 13:47:02
92
原创 设计模式-外观模式
外观模式//外观模式public class Facade { private SubSystem1 subSystem1 = new SubSystem1(); private SubSystem2 subSystem2 = new SubSystem2(); private SubSystem3 subSystem3 = new SubSystem3(); ...
2020-01-14 20:25:06
97
转载 字典树
字典树JAVA版本TrieNodeclass TrieNode { private TrieNode[] links; private final int R = 26; private boolean isEnd; public TrieNode() { links = new TrieNode[R]; } publ...
2020-01-14 14:25:29
89
转载 跳跃表
跳跃表SkipListimport java.util.Random;public class SkipList<E extends Comparable<? super E>> { /* * 跳表层数32层: 定义成32层理论上对于2^32-1个元素的查询最优。 */ private final int MAX_LEVEL =...
2020-01-14 10:01:18
155
转载 HashMap源码
HashMap源码/* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.util; import sun....
2019-12-29 14:21:58
118
原创 HashSet源码
package java.util;import java.io.InvalidObjectException;import sun.misc.SharedSecrets;public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.i...
2019-12-29 13:27:58
94
原创 拒绝http裸奔,拥抱https
一个依然采用HTTP传输信息的购物网站,很有可能成为“钓鱼”攻击的目标,那么,HTTP的风险何在呢?举个例子来说,当登陆一家购物网站的账户或进行购物付款时,需要输入用户名及密码,这些信息将通过HTTP协议传输给网站服务器。但HTTP传输未经加密,密码在传输过程中很可能被黑客截获,以致资金被窃。为了保证这些隐私数据能加密传输,网络安全专家设计了HTTPS协议。HTTPS中的“S”指的就是SSL证书...
2019-12-22 00:36:03
237
原创 QQ小程序-用户登录的简单实现
QQ小程序-用户登录这两天上手了QQ小程序蹭蹭热度,整理了如何使用官方api进行用户登录,希望能帮助到大家。一、项目选型前端:uni-app后端:springboot二、前端和后端我们要在页面生命周期的onload时去使用qq官方的api(不绝对,在别的声明周期也均可)qq.login是获取用户的code,我们需要用这个code去在后台获取用户的openid等敏感数据,因为用户的敏...
2019-12-18 23:25:36
1796
1
原创 设计模式-工厂模式与单例模式
一、工厂模式工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂模式完全负责设计原则,降低了对象之间的耦合度。很明显工厂方法模式依赖于抽象的架构,将实例化的任务交由子类去完成,同时也有非常好的拓展性。先写一个Pizza接口,那么一个香喷喷的Pizza要做好就需要经过如下四个步骤!public interface Pizza { public void ...
2019-12-10 17:14:30
100
原创 java的泛型程序设计
java泛型程序设计基本语法一个泛型类就是具有一个或多个泛型变量的类。public class Pair<T> { private T first; public Pair(){ this.first = null; } public T getfirst(){ return first; } public void...
2019-10-23 18:32:52
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人