- 博客(49)
- 收藏
- 关注
原创 Spring 事务传播机制
如果当前存在事务,则加入该事务;如果不存在,则创建一个新的事务。大多数情况下使用此选项。它是最常见的传播行为,适用于大多数业务逻辑。如果 createUserAndOrder 和 createOrder 都在同一个事务中调用,它们将共享同一个事务。如果 createOrder 抛出异常,整个事务将回滚,包括 createUser 的操作。
2025-02-07 14:40:09
925
原创 Lombok插件 @Data传参取值问题记录
问题:springMVC controller 接收参数时存在参数取值为空的情况(所传参数都有值)1.controller2.PSchOrderDTO3.取参(如图,只有一个参数有值)问题排查(猜想可能参数命名用@Data取值问题,修改一个参数名称)重新请求结果(发现修改的参数有值)解决方法(手动生成get和set方法,或者规范参数值)public class PSchOrderTempDTO { private List<PSchSchemeVO> pSch
2020-10-15 17:08:42
687
原创 java传入字符串和要分割的长度,返回字符数组
1.代码package com.byt.mc.schedule.common;import java.util.Arrays;public class StringDivide { public static void main(String[] args) { String[] strs=stringDivideByNum("qwertyuiop",2); Arrays.stream(strs).forEach(e-> System.out.prin
2020-09-25 15:05:50
410
原创 Redis高级之主从复制
1.主从复制简介互联网“三高”架构高并发高性能高可用你的“Redis”是否高可用?单机redis的风险与问题问题1.机器故障现象:硬盘故障、系统崩溃本质:数据丢失,很可能对业务造成灾难性打击结论:基本上会放弃使用redis.问题2.容量瓶颈现象:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存本质:穷,硬件条件跟不上结论:放弃使用redis结论:为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,连接在
2020-05-27 10:18:18
278
原创 Redis高级数据类型(Bitmaps,HyperLogLog,GEO)
1.Bitmaps简介bitmap是一种伪数据类型,是基于String实现的。因为redis的key和value本身就支持二进制的存储方式,所以bitmaps只是一个独特的扩展。因为是面向字节操作,所以他的最大长度就是512M,最适合设置成2^32个不同字节。业务场景电影网站统计每天某一部电影是否被点播统计每天有多少部电影被点播统计每周/月/年有多少部电影被点播统计年度哪部电影没有被点播Bitmaps类型的基础操作获取指定key对应偏移量上的bit值 ge
2020-05-22 17:35:25
1071
原创 Redis 核心配置 - conf
1.服务器端设定设置服务器以守护进程的方式运行 daemonize yes|no绑定主机地址 bind 127.0.0.1设置服务器端口号 port 6379设置数据库数量 databases 162.日志配置设置服务器以指定日志记录级别 loglevel debug|verbose|notice|warning日志记录文件名 logfile 端口号.log注意:日志级别开发期设置为verbose即
2020-05-22 16:09:10
178
原创 Redis删除策略,逐出算法
1.过期数据Redis中的数据特征Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态XX :具有时效性的数据-1 :永久有效的数据-2 :已经过期的数据 或 被删除的数据 或 未定义的数据过期的数据真的删除了吗?2.数据删除策略定时删除惰性删除定期删除数据删除策略的目标 : 在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露定时删除创建一个定时器,当key设置有
2020-05-22 15:05:59
360
原创 Redis 事务及锁
事务1.事务简介Redis执行指令过程中,多条连续执行的指令被干扰,打断,插队,造成数据错误redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰。一个队列中,一次性、顺序性、排他性的执行一系列命令2.事务的基本操作开启事务multi //作用:设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中执行事务exec //作用: 设定事务的结束位置,同时执行事务。与multi成对
2020-05-22 11:23:21
385
原创 Redis之RDB与AOF持久化详解及对比
持久化简介1.什么是持久化利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。2.为什么要进行持久化防止数据的意外丢失,确保数据安全性3.持久化过程保存什么将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程RDB1.RDB启动方式 —— save指令命令 save //redis操作者(用户)即时(随时进行)执行命令
2020-05-21 17:08:02
429
原创 Redis之通用指令
key通用操作 key 特征key是一个字符串,通过key获取redis中保存的数据 key应该设计哪些操作?对于key自身状态的相关操作,例如:删除,判定存在,获取类型等对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等对于key快速查询操作,例如:按指定策略查询key…… key 基本操作删除指定keydel key获取key是否存在exists key获取key的类型type keykey 扩展操作(时效性控制)
2020-05-19 17:48:05
119
原创 Redis基础之数据类型(5种常用)
数据存储类型介绍 Redis 数据类型(5种常用)string Stringhash HashMaplist LinkedListset HashSetsorted_set TreeSetstring redis 数据存储格式redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串 string 类型存
2020-05-19 15:23:28
526
原创 ES6入门
一、ECMAScript 6 简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。1、ECMAScript 和 JavaScript 的关系一个常见的问题是,ECMAScript 和 JavaScript 到底是什...
2020-04-05 16:09:47
119
原创 java设计模式之章职责链模式(二十二)
1.章职责链模式1.1 职责链模式基本介绍职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式...
2020-03-30 17:18:56
191
原创 java设计模式之策略模式(二十一)
1.策略模式1.1 策略模式基本介绍策略模式(Strategy Pattern)中,定义 算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让 算法的变化独立于 使用算法的客户这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。1.2 策略模式的原...
2020-03-30 11:49:24
179
原创 java设计模式之状态模式(二十)
1.状态模式1.1 状态模式基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换当一个 对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类1.2 状态模式的原理类图对原理 类 图的说明- - 即( ( 状态模 式的角色及职 责)Context 类为环境角...
2020-03-30 11:26:08
129
原创 java设计模式之解释器模式(十九)
1. 解释器模式1.1 解释器模式基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式(Interpreter Pattern): 是指给定一个语言( 表达式), 定义它的文法的一种表示,并 定义一个解释器,使用该 解释器来解释语言中的句子(表达...
2020-03-30 10:50:59
193
原创 java设计模式之备忘录模式(十八)
1. 备忘录模式1.1 游戏角色状态恢复问题游戏角色有攻击力和防御力,在大战 Boss 前保存自身的状态(攻击力和防御力),当大战 Boss 后攻击力和防御力下降,从备忘录对象恢复到大战前的状态1.1.1 传统方案解决游戏角色恢复1.1.2传统的方式的问题分析一个对象,就对应一个保存对象状态的对象, 这样当我们游戏的对象很多时,不利于管理,开销也很大.传统的方式是简单地做备份,ne...
2020-03-27 16:11:48
128
原创 java设计模式之中介者模式(十七)
1.中介者模式1.1 中介者模式基本介绍中介者模式(Mediator Pattern),用一个 中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其 耦合松散,而且可以独立地改变它们之间的交互中介者模式属于行为型模式,使代码易于维护比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起到...
2020-03-27 15:53:21
115
原创 java设计模式之观察者模式(十六)
1 .观察者模式1.1 先看一个天气预报项目需求气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。需要设计开放型API,便于其他第三方也能接入气象站获取数据。提供温度、气压和湿度的接口测量数据更新时,要能实时的通知给第三方1.1.1 天气预报设计方案 1-普通方案传统的设计方案通过对气象站项目的分析,我们可以初步设计出一个We...
2020-03-26 11:35:55
132
原创 java设计模式之迭代器模式(十五)
1.迭代器模式1.1 迭代器模式基本介绍迭代器模式(Iterator Pattern)是 常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式, 提供一种遍历集合元素的统一接口,用 一致的方法遍历集合...
2020-03-25 10:31:59
128
原创 java设计模式之章访问者模式(十四)
1.访问者模式1.1 访问者模式基本介绍访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操...
2020-03-23 17:31:25
131
原创 java设计模式之命令模式(十三)
1. 命令模式1.1 命令模式基本介绍命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计命名模式使得 请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装...
2020-03-23 11:45:09
102
原创 java设计模式之模板方法模式(十二)
1.模板方法模式1.1 模板方法模式基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义...
2020-03-20 13:45:25
123
原创 java设计模式之代理模式(十一)
1.1 代理模式(Proxy)1.1.1 代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、 动态代理 (JDK 代理、接口代理)和 Cg...
2020-03-20 11:01:50
116
原创 java设计模式之享元模式(十)
1. 享元模式1.1 享元模式基本介绍享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。...
2020-03-19 11:14:21
165
1
原创 java设计模式之外观模式(九)
1.外观模式1.1 外观模式基本介绍外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口 提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用 以屏蔽内部子系统的细节,使得 调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节1.1.1 外观模式原理类图对类图说明(分类外观模式的角色)外观...
2020-03-18 16:54:14
146
原创 java设计模式之组合模式(八)
1.组合模式1.1组合模式基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“ 整体- 部分”的层次关系。组合模式 依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得 用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象...
2020-03-18 15:51:03
189
原创 java设计模式之装饰者设计模式(七)
1.装饰者设计模式1.1 装饰者模式定义装饰者模式: 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性, 装饰者模式也体现了开闭原则(ocp)这里提到的动态的将新功能附加到对象和 ocp 原则,在后面的应用实例上会以代码的形式体现,请同学们注意体会。1.2 装饰者模式原理装饰者模式就像打包一个快递主体:比如:陶瓷、衣服 (Component) // 被装饰者包...
2020-03-18 11:04:17
131
原创 java设计模式之桥接模式(六)
1.桥接模式1.1 桥接模式(Bridge)-基本介绍桥接模式(Bridge 模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式Bridge 模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性...
2020-03-16 11:23:26
98
原创 java设计模式之适配器设计模式(五)
1.适配器设计模式1.1看一组实际生活中的例子1.2基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示, 主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类: 类适配器模式、对象适配器模式、接口适配器模式1.3 工作原理适配器模式:将一个类的...
2020-03-13 13:53:54
183
原创 java设计模式之建造者模式(四)
1.建造者模式1.1 建造者模式基本介绍建造者模式(Builder Pattern) 又叫 生成器模式,是一种对象 构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。1.2 建造者模式的...
2020-03-12 15:38:50
110
原创 java设计模式之原型模式(三)
1.原型模式1.1 克隆羊问题现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10只羊。1.2传统方式解决克隆羊问题思路分析(图解)代码演示public class Sheep { private String name; private int age; private String color; pub...
2020-03-11 16:01:11
145
原创 java设计模式之工厂模式(二)
1.1简单工厂模式1.1.1先看一个具体需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能。1.1.2使用传统的方式来完成思路分析(类图)编写 OrderPizza.java 去订购需要的各种 Pizzapublic...
2020-03-10 15:18:58
117
原创 java设计模式之单例模式(一)
1.单例模式介绍 所谓类的单例设计模式,就是 采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactor...
2020-03-05 16:00:13
157
原创 微信小程序绘制canvas图片
1.效果图2.注意事项1.https网址图片需要预先下载到本地用wx.downloadFile方法2.wx.downloadFile需要在微信公众号后台配置域名才能获取图片,如图:3.代码1.wxmlcanvas.wxml<cover-view bindtap='savePic'> <canvas style="width:100%;heig...
2020-01-02 18:00:37
3675
原创 mybatis条件查询Integer条件查询写法问题记录
1.问题写法 <if test="orderStatus != null and orderStatus != '' "> and fpr.status=#{orderStatus} </if>如图在orderStatus != ’ ’ 中,当orderStatus 值为0时,sql语句未通过条件判断,这是因为...
2019-08-09 16:06:38
1093
原创 java8新特性 Stream流的优雅操作
1. 使用传统的方式,遍历集合,对集合中的数据进行过滤//创建一个List集合,存储姓名 List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周芷若"); list.add("赵敏"); list.add("张强"...
2019-07-18 17:19:11
2036
原创 vue初识
<!DOCTYPE html><html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"><head> <meta charset="UTF-8"> <title>Title</title></head><body><...
2019-07-10 18:08:55
99
原创 mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合
1.查询的数据对象@Datapublic class JdOrder implements Serializable{ private Long orderId; private Long finishTime; private Integer orderEmt; private Long orderTime; private Long pare...
2019-05-22 11:03:15
28636
12
原创 JqGrid多行选中,翻页保持选中
(一)定义全局变量保存选中id//保存选中idvar checkBox=[];//定义页码值 var cPage=0;(二)使用翻页事件onPaging:function (pgButton) { cPage++; //翻页事件 },(三)每次数据加载完成后...
2019-04-16 15:05:10
2034
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人