自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

转载 SpringBoot实现证书License的授权和验证

SpringBoot使用TrueLicense实现证书License的授权和验证

2022-09-07 16:43:43 9315

原创 加密与解密算法

加密算法分别分为:散列哈希-[MD5、SHA1、CRC32]对称-[DES,3DES(TDEA、Triple DES),AES、,Blowfish,RC4、RC5,IDEA]Base64、Rabbit、Escape。【三种分类】1、对称加密:密钥只有一个,解密、解密都是这个密码,加解密速度快,典型的对称加密有DES、AES、RC4等2、非对称加密:密钥成对出现,分别为公钥和私钥,从公钥无法推知私钥,反之,从私钥也无法推知公钥,加密和解密使用不同的密钥,公钥加密需要私钥解密,反之,私钥加

2022-05-25 09:16:06 870

原创 Apache Zeppelin Notebook REST API

注册的 interpreters列表Description ThisGETmethod returns all the registered interpreters available on the server. URL http://[zeppelin-server]:[zeppelin-port]/api/interpreter Success code 200 Fail code 500 Sample JSON response {..

2022-04-28 09:57:44 230

原创 Apache Zeppelin基础工具类

@Componentpublic class ZeppelinUtil { public String createNote(Script record, String zeppelinUrl) throws Exception { Map<String, Object> params = new HashMap<>(); params.put("name", record.getScriptName()); String.

2022-04-25 17:02:32 300

原创 Apache Zeppelin Notebook REST API

Apache Zeppelin Notebook REST APIZeppelin 接口简介

2022-04-24 09:59:48 357

原创 Redis的四种模式,单机、主从、哨兵、集群

redis的多种模式都说了升级到哨兵模式,那之前用的不是哨兵模式,肯定还有其他模式。单机模式、主从模式、哨兵模式、集群模式单机模式这个最简单,一看就懂。就是安装一个redis,启动起来,业务调用即可。具体安装步骤和启动步骤就不赘述了,网上随便搜一下就有了。单机在很多场景也是有使用的,例如在一个并非必须保证高可用的情况下。咳咳咳,其实我们的服务使用的就是redis单机模式,所以来了就让我改为哨兵模式。说说单机的优缺点吧。优点: 部署简单,0成本。 成本低,没

2022-03-26 14:22:49 710

原创 SpringBoot使用jasypt加解密密码

Jasypt懒得简介了,有兴趣直接看官网,直接传送官网引入依赖

2021-05-29 22:32:45 578 1

原创 HTTP请求错误状态码大全(HTTP Status Code)

1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx(成功)表示成功处理了请求的状态码。200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。 20.

2020-09-17 10:41:44 16455

原创 通过Kerberos 连接 HDFS 基础工具

public class HdfsUtil { private FileSystem hdfs; public HdfsUtil() { this.hdfs = getFileSystem(); } public static Configuration authKerberos() { //用户principal String USER_KEY = "nn/[email protected]"; S.

2020-06-10 09:34:45 589

转载 @ModelAttribute注解的使用

在SpringMVC的Controller中使用@ModelAttribute时,其位置包括下面三种:应用在方法上 应用在方法的参数上 应用在方法上,并且方法也使用了@RequestMapping应用在方法上首先说明一下,被@ModelAttribute注解的方法会在Controller每个方法执行之前都执行,因此对于一个Controller中包含多个URL的时候,要谨慎使用。1)使用@ModelAttribute注解无返回值的方法@Controller@RequestMappin

2020-06-05 15:09:49 232

原创 Spring注解大全

@Controller标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.@RestControllerSpring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。@Service用于标注业务层组件,说白了就是加入你有一个用注解的方式把这个类注入到spring配置中

2020-06-05 14:58:15 146

转载 时间戳与日期字符串相互转换

import Mail.SendMail;import java.text.NumberFormat;import java.text.SimpleDateFormat;import java.time.ZonedDateTime;import java.util.*;public class Test { public static void main(String[] args) { String timeStamp = timeStamp(); .

2020-05-20 14:55:59 393

原创 【Java集合框架】Map常用实现类

HashMaphashMap的属性:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //序列号,序列化的时候使用。 private static final long serialVersionUID = 362498820763181265L; /**默认容量,1向左移位4个,00

2020-05-20 11:15:25 195

原创 Webservice接口开发

WebService简介(1)WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。(2)WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单对象请求协议)规范的。(3)WebService=WSDL+SOAP+UDDI(webservice的注册),Soap是由Soap的part和0个

2020-05-14 11:09:51 953

原创 Spark-批任务Checkpoint解析

一、概述Checkpoint是什么?Spark在生产环境下经常会面临Tranformations的RDD非常多(例如一个Job中包含1万个RDD)或者具体Tranformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1~5个小时),此时我们必须考虑对计算结果数据的持久化。如果采用persist把数据放在内存中的话,虽然是最快速的但是也是最不可靠的;如果放在磁盘上也不是完全可...

2020-02-16 12:52:11 468

原创 二十三种设计模式——解释器模式(Interpreter Pattern)

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。介绍意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定...

2020-01-14 22:13:20 214

转载 二十三种设计模式——策略模式(Strategy Pattern)

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 i...

2020-01-14 22:07:27 223

原创 基础排序算法——选择排序、插入排序、冒泡排序、快速排序、希尔排序、归并排序、堆排序、基数排序

package 算法;import java.util.Date;public class Sort { public static void main(String[] args) { String[] a = {"S", "G", "J", "E", "R", "Z", "Y", "K", "A", "X", "V", "N", "P", "O"}; ...

2020-01-14 21:21:02 190

原创 Spark-Shuffle读过程

shuffle的读过程发生的宽依赖的RDD(如ShuffledRDD)的compute方法被调用的时候。所以先来看ShuffledRDD的compute()方法的源码:// ShuffledRDD.scalaoverride def compute(split: Partition, context: TaskContext): Iterator[(K, C)] = { val dep...

2019-12-21 20:43:02 490

原创 Spark-Shuffle写过程

ShuffleManager介绍spark之所以比mapReduce的性能高其中一个主要的原因就是对shuffle过程的优化,一方面spark的shuffle过程更好地利用内存(执行内存),另一方面对于shuffle过程中溢写的磁盘文件归并排序和引入索引文件。当然,spark性能高的另一个主要原因还有对计算链的优化,把多步map类型的计算chain在一起,大大减少中间过程的落盘,这也是spar...

2019-12-21 20:38:02 389

原创 二十三种设计模式——模板模式(Template Pattern)

模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。...

2019-11-16 20:59:58 257

原创 二十三种设计模式——访问者模式(Visitor Pattern)

访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。介绍意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对...

2019-11-16 20:55:31 209

原创 二十三种设计模式——观察者模式(Observer Pattern)

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目...

2019-11-16 20:38:39 234

原创 二十三种设计模式——状态模式(State Pattern)

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。介绍意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使...

2019-11-16 20:31:20 415

原创 二十三种设计模式——备忘录模式(Memento Pattern)

备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。介绍意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录...

2019-11-16 20:22:03 210

原创 二十三种设计模式——中介者模式(Mediator Pattern)

中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。介绍意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会...

2019-11-10 17:22:58 194

原创 二十三种设计模式——迭代器模式(Iterator Pattern)

迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。介绍意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走...

2019-11-10 16:53:54 200

原创 二十三种设计模式——命令模式(Command Pattern)

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为...

2019-11-10 16:48:33 215

原创 二十三种设计模式——责任链模式(Chain of Responsibility Pattern)

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。介绍意图:避免请求发送者与接收者耦合在一起,让多个对象都有...

2019-11-10 16:40:45 179

原创 二十三种设计模式——代理模式(Proxy Pattern)

代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制...

2019-11-03 14:52:43 298

原创 二十三种设计模式——享元模式(Flyweight Pattern)

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有...

2019-11-03 14:41:59 211

原创 二十三种设计模式——外观模式(Facade Pattern)

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。介绍意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。...

2019-11-03 14:24:59 246

原创 二十三种设计模式——装饰器模式(Decorator Pattern)

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。介绍意图:动态地给一个...

2019-11-03 14:07:19 194

原创 二十三种设计模式——组合模式(Composite Pattern)

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。介绍意图:将...

2019-11-03 13:52:29 521

原创 二十三种设计模式——过滤器模式(Filter Pattern)

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

2019-10-30 23:13:17 1001

原创 二十三种设计模式——桥接(Bridge)

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象类方法但是不同的桥接实现类...

2019-10-30 22:49:24 299

原创 二十三种设计模式——适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频...

2019-10-30 22:31:21 208

原创 二十三种设计模式——原型模式(Prototype Pattern)

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

2019-10-27 16:52:04 213

原创 二十三种设计模式——建造者模式(Builder Pattern)

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂...

2019-10-27 16:05:15 230

原创 二十三种设计模式——单例模式(Singleton Pattern)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3...

2019-10-27 15:38:55 216

空空如也

空空如也

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

TA关注的人

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