自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bool的博客

大术难修,大道难悟。

  • 博客(137)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

【代码】给定一个二叉树的根节点 root ,返回 它的 中序 遍历。

2023-05-14 20:06:01 191 1

原创 @Autowired和@Resource到底有什么区别

@Autowired和@Resource到底有什么区别

2023-03-02 11:36:00 577

原创 在什么场景下使用多线程技术?

业务分为两个执行过程,分别是A和B。当A业务发生阻塞情况时,B业务的执行不依赖A业务的执行结果,这时可以使用多线程技术来提高运行效率;如果B业务的执行依赖A业务的执行结果,则可以不使用多线程技术,按顺序进行业务的执行。一旦系统中出现了阻塞现象,则可以根据实际情况来使用多线程技术提高运行效率。

2023-02-20 17:46:33 628

原创 spring-boot 集成 keycloak 遇到的问题

spring-boot 集成 keycloak 遇到的问题

2023-01-02 23:57:20 646 1

原创 SpringBoot2.7.4集成Flowable6.7.2

SpringBoot集成Flowable工作流引擎SpringBoot集成Flowable-ui流程设计器

2023-01-02 23:32:42 987 2

原创 spring项目在非Spring管理的类中注入Bean的方法

Spring项目在非Spring管理的类中注入Bean的方法

2023-01-02 23:28:08 586

原创 基于redis分布式锁的防止重复请求

核心就是相同的key会获取锁失败,此时可以抛出重复请求异常定义一个注解:NoRepeatSubmit:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface NoRepeatSubmit { /** * 设置请求锁定时间 * * @return */ int lockTime() default 10;}AOP:.

2022-04-28 14:54:56 1834

原创 Java利用Mybatis进行数据权限控制

权限控制主要分为两块,认证(Authentication)与授权(Authorization)。认证之后确认了身份正确,业务系统就会进行授权,现在业界比较流行的模型就是RBAC(Role-Based Access Control)。RBAC包含为下面四个要素:用户、角色、权限、资源。用户是源头,资源是目标,用户绑定至角色,资源与权限关联,最终将角色与权限关联,就形成了比较完整灵活的权限控制模型。资源是最终需要控制的标的物,但是我们在一个业务系统中要将哪些元素作为待控制的资源呢?我将系统中待控制的资源分为三

2022-03-30 21:28:45 3372

原创 Spring事务七大传播机制与五个隔离级别

一、spring支持7种事务传播行为1、propagation_required(xml文件中为required)当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。(如果被调用端发生异常,那么调用端和被调用端事务都将回滚)2、propagation_supports(xml文件中为supports)当前方法不必需要具有一个事务上下文,但是如果有一个事务的话,它也可以在这个事务中运行3、propagation_ma.

2022-03-24 17:50:12 3953

原创 12.Java设计模式之访问者模式

问者模式(Visitor Pattern)模式是行为型(Behavioral)设计模式,提供一个作用于某种对象结构上的各元素的操作方式,可以使我们在不改变元素结构的前提下,定义作用于元素的新操作。换言之,如果系统的数据结构是比较稳定的,但其操作(算法)是易于变化的,那么使用访问者模式是个不错的选择;如果数据结构是易于变化的,则不适合使用访问者模式。访问者模式一共有五种角色:(1) Vistor(抽象访问者):为该对象结构中具体元素角色声明一个访问操作接口。(2) ConcreteVisito

2022-03-23 21:30:25 164

原创 11.Java设计模式之模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。优点:封装不变部分,扩展可变部分。 提取公共代码,便于维护。 3、行为由父类控制,子类实现。缺点:每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。使用场景:有.

2022-03-23 19:59:30 142

原创 10.Java设计模式之策略模式

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。StrategyPatternDemopackage com.bool.strategy;import com.bool.stra.

2022-03-23 19:39:53 669

原创 9.Java设计模式之空对象模式

以前写代码的时候没有专门的封装一个代表NULL的对象,而是直接返回了null封装一个代表NULL的对象,从业务场景来说比较符合天然的逻辑,符合面向对象的思想在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查(封装一个代表NULL的对象,从业务场景来说比较符合天然的逻辑,符合面向对象的思想)代码:AbstractCustomerpublic abstract class AbstractCustomer { ...

2022-03-23 19:30:21 1259

原创 使用Linux的wget命令进行整站离线下载

wget -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5)" -r -p -k -nc http://www.xxx.com wget -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5)" -r -p -k -nc http://www.xxx.com-U 修改agent,伪装成firefox等浏览器,当某些网站拒绝下载的时候,加上这个参数就可以下载了。.

2022-01-13 16:00:00 872

原创 hadoop中的fsimage和edits的介绍

在进入下面的主题之前想来搞清楚edits和fsimage文件的概念:1,fsimage文件其实是hadoop文件系统元数据的一个永久性的检查点,其中包含hadoop文件系统中的所有目录和文件idnode的序列化信息。2,edits文件存放的是hadoop文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到edits文件中。元数据的介绍:元数据的分类按形式分类:内存元数据和元数据文件;它们的存在的位置分别为:内存和磁盘上。其中内存元数据主要是hdfs文件目录的管理;

2021-09-06 17:31:32 2667

原创 Mysql Sql执行的顺序

1.根据查询指定的表格,from计算笛卡尔积。2.on根据join_condition过滤数据。3.join添加相关外部表格数据。4.where根据where_condition过滤数据。5.group by分组。6.having根据having_condition过滤数据。7.选择指定的列。8.distinct指定列去重。9.orderby按order_by_condition排序。10.取出指定的记录量。...

2021-08-16 14:48:16 127

原创 Spring事务失效的几种原因分析

1、spring的事务注解@Transactional只能放在public修饰的方法上才起作用,如果放在其他非public(private,protected)方法上,虽然不报错,但是事务不起作用2、如使用mysql且引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB引擎3、Spring团队建议在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。在接口上使用 @Transactional 注解,只能当你设置了基

2021-08-13 10:08:11 365

原创 AQS之CountDownLatch(应用场景)

CountDownLatch又叫计数器,他通过一个共享的计数总量来控制线程锁的获取,当计数器总量大于0时,线程将被阻塞,不能够获取锁,只有当计数器总量为0时,所有被阻塞的线程同时被释放。应用场景实现最大的并行性:有时我们想同时启动多个线程,实现最大程度的并行性。例如,我们想测试一个单例类。如果我们创建一个初始计数为1的CountDownLatch,并让所有线程都在这个锁上等待,那么我们可以很轻松地完成测试。我们只需调用 一次countDown()方法就可以让所有的等待线程同时恢复执行。 开始执行前

2021-05-14 17:51:39 269

原创 AQS之Semaphore(信号量)应用场景

Semaphore 剩余的许可证,如果为0则阻塞。应用场景:1.控制线程最大并发数2.异步任务,同步返回3.加锁 (1个整形信号量即可模拟互斥锁)

2021-05-14 16:59:26 293

原创 CMPXCHG指令

一、CMPXCHG汇编指令详解。这条指令将al\ax\eax\rax中的值与首操作数比较:1.如果相等,第2操作数的直装载到首操作数,zf置1。(相当于相减为0,所以0标志位置位)2.如果不等, 首操作数的值装载到al\ax\eax\rax,并将zf清0二、举例说明。例如:CMPXCHG CX,DX首操作数: CX第2操作数:DX(1) 如果指令执行前:(AX) = 2300H(CX) = 2300H(DX) = 2400H则指令执行后, 因(CX)=

2021-05-14 10:51:16 3899

原创 8.Java设计模式之过滤器模式

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。实现我们将创建一个Person对象、Criteria接口和实现了该接口的实体类,来过滤Person对象的列表。CriteriaPatternDemo类使用Criteria对象,基于各种标准和它们的结合来过滤Person对...

2021-04-19 14:54:47 597

原创 7.Java设计模式之桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分类分

2021-04-19 14:18:58 72

原创 6.Java设计模式之设配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。何时使用:1、系统需要使用现有的类,而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在..

2021-04-19 14:04:27 123

原创 5.Java设计模式之原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。何时使用:1、当一个系统应该独立于它的产品创建,构成和表示时。2、当要实例化的类是在运行.

2021-04-19 13:47:48 49

原创 4.Java设计模式之建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。使用场景:1、需要生成的对象具有复杂的内部结构。 2、需要生成的对象内部属性本身相互依赖。实现我们假设一个快餐店的商业案例,其中,一个典型的套餐可以是一个汉堡(Burger).

2021-04-19 11:54:15 57

原创 3.Java设计模式之单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。单例模式优点:1、在内存里只有一个实例,减少了内存的开销2、避免对资源的多重占用使用场景:demo:SingleObject.java 1、要求生产唯一序列号。 2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用...

2021-04-15 16:58:55 66

原创 2.Java设计模式之抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式的存在都是为了简化复杂对象的创建demo:目录结构:Shape.javapublic interface Shape { void draw();}Color.javapublic interface Color { void fill();}

2021-04-15 16:53:08 78

原创 1.Java设计模式之工厂模式

使用场景:1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。2、数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。3、设计一个连接服务器的框架,需要三个协议,"POP3"、"IMAP"、"HTTP",可以把这三个作为产品类,共同实现一个接口。用于简化复杂对象的创建demo:Shape.javapublic interface Shape { void draw();}Circle.jav.

2021-04-15 16:46:21 76

原创 Java设计模式之责任链模式(用来替代if语句)

一、责任链模式定义责任链模式(Responsibility Pattern), 是行为型设计模式之一。这种模型结构有点类似现实生活中铁链,由一个个铁环首尾相接构成一条链,如果这种结构用在编程领域,则每个节点可以看做一个对象,每个对象有不同的处理逻辑,将一个请求从链的首端发出,沿着链的路径依次传递每个节点对象,直到有对象处理这个请求为止,我们将这样一种模式称为责任链模式。二、责任链模式的使用场景1.多个对象可以处理同一个请求,但具体由哪个对象处理则在运行时动态决定2. 在请求处理者不明确的情况...

2021-04-13 14:55:27 965

原创 Kafka分区和副本分配策略

Kafka 使用 ZK 在 Broker 中选出一个 Controller,用于 Partition 分配和 Leader 选举。Partition 的分配:将所有 Broker(假设共 n 个 Broker)和待分配的 Partition 排序。将第 i 个 Partition 分配到第(i mod n)个 Broker 上 (这个就是 Leader)。将第 i 个 Partition 的第 j 个 Replica 分配到第((i + j) mode n)个 Broker 上。...

2021-03-06 12:04:00 491 1

原创 关于Spring Security ignoring失效

// filter不能使用spring来管理,不然会让ignoring失效...只能new

2020-12-27 18:11:13 1067

原创 Spring Security 之自定义异常处理

1. Spring Security 中的异常Spring Security中的异常主要分为两大类:一类是认证异常,另一类是授权相关的异常。1.1 AuthenticationExceptionAuthenticationException是在用户认证的时候出现错误时抛出的异常。主要的子类如图:根据该图的信息,系统用户不存在,被锁定,凭证失效,密码错误等认证过程中出现的异常都由AuthenticationException处理。1.2 AccessDeniedExceptio...

2020-12-25 01:35:24 2031 3

原创 关于阿里云不同vpc下的内网互通

在实际的线上环境中,搭建服务器集群直接使用外网ip搭建会有走公网绕行带来的网络质量不稳定问题以及数据在公网上传送被窃取的风险,在使用阿里云或者其他云有vpc服务(高速通道)组成局域网,为保证速度和复杂性,最好是同一账号同一区域来组网。使用教程:https://help.aliyun.com/product/27706.html...

2020-12-24 10:56:26 1144

原创 RBAC权限模型研究现状

访问控制技术是通过特定的方法限制或者允许主体对客体的访问能力及其范围的一种安全机制。目前关于 SAAS 模式下访问控制的研究,大部分都是基于RBAC 模型 [7][8] ,1992 年,David 等提出了 RBAC 模型,在用户和权限之间引入了角色的概念,利用角色作为中介,对用户的授权转变为对角色的直接授权。美国 George Mason 大学 Sandhu 等人通过详细研究 RBAC 模型,在此基础上,提出了 RBAC96、RBAC97、ARBAC97、ARBAC99 等模型。目前世界上有很多

2020-12-22 09:25:39 627

原创 Logstash jdbc 按时间增量更新的一些总结

不同数据库的支持mysql数据类型 显示样例 是否支持timestamp statement tracking_column tracking_column_type SQL示例 date 2020-10-20 N select *, datediff(date, '1970-01-01') as days from tbl_time where datediff(date, '1970-01-01') > :sql_last_valu

2020-12-21 16:29:46 1263

原创 What‘s the ACID? (from wikipedia)

Incomputer science,ACID(atomicity,consistency,isolation,durability) is a set of properties ofdatabase transactionsintended to guarantee data validity despite errors, power failures, and other mishaps. In the context ofdatabases, a sequence of data...

2020-12-18 14:32:11 182

原创 分布式算法概况

四大基础理论 拜占庭将军问题 CAP 理论 ACID 理论 BASE 理论 八大分布式协议和算法 Paxos 算法 Raft 算法 一致性 Hash 算法 Gossip 协议算法 Quorum NWR 算法 FBFT 算法 POW 算法 ZAB 协议 ...

2020-12-16 15:31:23 170

原创 NoSql思维导图

NoSqlNoSql入门和概述入门概述1.互联网时代背景下大机遇,为什么用nosql1.单机MySQL的美好时代一个网站的访问量一般都不大,而且更多的是静态页面,动态交互类型的网站不多,用单个数据库完全可以轻松应对。上述架构下,数据存储的瓶颈是什么?数据量的总大小一个机器放不下时数据的索引(B+Tree)一个机器的内存放不下时访问量(读写混合)一个实例不能承受2.Memcached(缓存)+MySQL+垂直拆分随着访问量的上升,几乎发部分使用MySQL架构的网站在数据库上都

2020-12-15 14:02:29 1152

原创 Redis总结

黑马程序员 Redis教程P1:Redis介绍mysql数据库,数据库以“文件形式存储在硬盘”里边。Redis什么是RedisRedis是远程数据服务,内存高速缓存数据库,支持丰富的数据结构,如String、list、hash、set、sorted set,可持久化,保证了数据安全。Redis是做数据缓存的。缓存有两种类型:数据缓存、页面缓存使用缓存减轻数据库的负载。在开发的时候如果有一些数据在短时间之内不会发生变化,而他们还要被频繁的访问,为了提高用户的请求速度和降低网站的负载,

2020-12-15 13:59:48 381

原创 Kafka知识总结

Kafka知识总结一、讲讲acks参数对消息持久化的影响目录写在前面如何保证宕机时数据不丢失?多副本之间数据如何同步?ISR到底指的是什么东西?acks参数的含义?最后的思考1.写在前面面试大厂时,一旦简历上写了Kafka,几乎必然会被问到一个问题:说说acks参数对消息持久化的影响?这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西。所以无论是为了面试还是实际项目使用,大家都值得看一下这篇文章对Kafka的acks参数的分析,以及背后的原理。2

2020-12-15 13:50:03 202

分布式集群部署手册.pdf

对常用分布式集群部署做了一个整合,包含Spring cloud,Spring cloud alibaba,Mysql集群,Redis集群等,对常用的集群做了一个整合以及快速部署。 文档采用latex编译,非常精美。

2019-11-04

fastdfs.pdf

FastDFS集群安装手册,整理过的精致pdf,latex编译过的。非常漂亮.

2019-10-09

利用记录型信号量解决生产者-消费者问题

1.利用记录型信号量解决生产者-消费者问题.odt1.利用记录型信号量解决生产者-消费者问题.odt1.利用记录型信号量解决生产者-消费者问题.odt

2019-01-19

判断相邻2个字符是否相同

判断相邻2个字符是否相同

2016-02-07

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

TA关注的人

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