岳庆锦
Java设计模式-创建者模式-工厂模式-简单工厂模式(不属于23种设计模式之一)
工厂模式  定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子类工厂类中实现。(这也满足创建型模式的特点“创建与使用分离”)  分类:按实际业务场景划分,工厂模式可分为3类:  ①简单工厂模式(不属于GOF 23种设计模式之一)  ②工厂方法模式  ③抽象工厂模式  应用场景:在...
发布于2022/03/14 20:56 1755
岳庆锦
Java设计模式-创建者模式-单例模式-懒汉式
单例模式(Singleton Pattern)-懒汉式  懒汉式:类加载的时候该类的对象并不会被创建,而是在首次使用该对象的时候(外界调用获取该单实例对象的getInstance()方法时)被创建。   下面来介绍懒汉式的四种实现方式(线程不安全、线程安全、双重检查锁方式、静态内部类方式)      1.懒汉式-方式1(线程不安全) &...
发布于2022/03/13 19:56 1574
公言雨
系统的可观测性学习-ELK(三)
系统的可观测性学习(三) ELASTICSEARCH 进阶 进阶-单节点集群 启动10001 10002 集群内创建名为 users 的索引,为了演示目的,我们将分配 3个主分片和一份副本(每个主分片拥有一个副本分片)。 #PUT http://127.0.0.1:10001/users {    "settings" : {   ...
发布于2022/03/12 21:48 1508
岳庆锦
Java设计模式-创建者模式-单例模式-饿汉式
创建者模式  主要关注点:怎样创建对象?  主要特点:将对象的创建与使用分离。  好处:降低系统的耦合度,使用者不需关注对象的创建细节,对象的创建由相关的工厂来完成。  就像我们买东西,不需要知道商品是怎么生产的,因为它们有专门的厂商生产。  分类:1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.原型模式 5.建造者模式 单例模式...
发布于2022/03/12 20:29 1554
岳庆锦
Java设计模式-软件设计原则-合成复用原则
合成复用原则(组合/聚合复用原则)  定义:要求在软件复用时,尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。  虽然继承也能提高代码的复用性,但存在很多问题,下面会说到。  如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成,两者都是开闭原则的具体实现规范。  “里氏替换原则&rdq...
发布于2022/03/11 00:07 1776
岳庆锦
Java设计模式-软件设计原则-迪米特法则
迪米特法则(最少知识原则)  定义:只和你的直接朋友交谈,不跟“陌生人”说话。  其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。  软件实体包括以下几个部分:①项目中划分出的模块②类与接口③方法  举个栗子,我们租房子要找房屋中介,而不是直接找房主。租房者只需把购房需求告诉房...
发布于2022/03/09 23:24 3273
岳庆锦
Java设计模式-软件设计原则-接口隔离原则
接口隔离原则  定义:客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上。  应用:下面通过“安全门”案例来理解接口隔离原则。  需求:我们需要创建一个黑马品牌的安全门,该安全门具有防火、防水、防盗的功能。  分析:在学习接口隔离原则之前,我们可能会想到将防火、防水和防盗功能提取成一个接口(Sa...
发布于2022/03/08 21:00 5494
岳庆锦
Java设计模式-软件设计原则-单一职责原则
单一职责原则(单一功能原则)  定义:一个类应该有且仅有一个引起它变化的原因,否则该类应该被拆分。  职责:类变化的原因。(一个类中的功能发生改变时,就需要修改这个类内部的业务逻辑,从而使类发生了变化)  核心思想:控制类的颗粒度大小、将对象解耦、提高其内聚性。  颗粒度 = 颗粒 + 清晰度  颗粒度小表示更微观,注重细节;颗粒度大表示...
发布于2022/03/07 21:47 1405
岳庆锦
Java设计模式-软件设计模式-依赖倒置原则
依赖倒置原则  定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象(接口或抽象类);抽象不应该依赖细节(具体的实现类),细节应该依赖抽象。  核心思想:要面向接口编程,不要面向实现编程。  依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。  由于在软件设计中,细节具有多变性,而抽象层则相对稳定。因此,以抽象为基础搭建起...
发布于2022/03/06 21:05 1591
公言雨
系统的可观测性学习-ELK(二)
JAVAAPI JAVAAPI-索引-创建   添加依赖 <dependency>        <groupId>org.elasticsearch</groupId>        <artifactId>elasticsearch</a...
发布于2022/03/06 18:10 1479
岳庆锦
Java设计模式-软件设计原则-里氏替换原则
里氏替换原则  定义:继承必须确保超类所拥有的性质在子类中仍然成立。(任何基类可以出现的地方,子类一定可以出现)  超类:已经存在的,被继承的类称为超类,基类或父类。  子类:新创建的,继承的类称为子类,派生类或孩子类。  里氏替换原则主要阐述了有关继承的一些原则。也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。  ...
发布于2022/03/05 19:20 1597
岳庆锦
Java设计模式-软件设计原则-开闭原则
软件设计原则  在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本。   可维护性:  定义:维护人员理解、改正、改动和改进这个软件的难易程度。  简单理解就是,软件的维护就是软件的再生。一个好的软件设计,必须能够允许新的设计要求以较为容...
发布于2022/03/04 18:21 1479
公言雨
系统的可观测性学习-ELK(一)
系统的可观测性学习(一) 1.1 ELK 介绍 “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。 Elasticsearch 是一个搜索和分析引擎。 Logstash 能够同时从多个来源采集数据,转换数据,发送到Elasticsearch。 Kibana 则可以让用户在 Elasticsear...
发布于2022/02/27 15:51 1525
xu.wang
解决:支付宝回调验证AlipaySignature.rsaCheckV1,一直返回false的问题
环境: 使用IjPay 普通公玥方式 配置文件如下: @Bean @PostConstruct public AliPayApiConfig getApiConfig() { AliPayApiConfig aliPayApiConfig; try { aliPayApiConfig = AliPayApiConfi...
发布于2021/06/23 10:04 4886
hl.wang
基于springAop的日志采集-进阶
提出问题        在之前文章中我们使用spring的Aop实现了操作日志的采集功能,但是当出现大量操作时,会出现数据混乱的问题,并且我们之前使用了map存储数据不够简洁。       分析问题     针对于高并发下的操作日志的采集,我们将操作信息存储于一个entity中使代码更加简洁易懂,...
发布于2021/06/08 12:49 2313
hl.wang
基于springAOP的日志采集实现
提出问题        近期在实习中负责了一个日志系统,主要功能为每个项目收集到用户的操作日志,将这些日志发送到一个专门收集统计日志的项目对这些日志进行管理与统计       分析问题     在这个系统当中目前据我认为有两个相对于的难点,第一个是用户操作日志的收集,第二个是当项目与用户量增多时的...
发布于2021/04/17 16:25 2381