自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 配置ng-zerro的nz-date-picker时间选择组件

1、官方示例nz-date-picker​ 官方示例中做到的效果无法满足业务查询的务求,比如:我需要先选中开始时间,然后再选择结束时间时无法选中相同日期的数据,并且即使选择“此刻”时,对应的时间也没有进行禁用​ 说明:ng-zerro是有对应的实现的,但是在示例中相对简单,无法达到效果,本文仅仅做了自己的实现记录2、如何实现可以选择相同的时间,并且禁用不在选中时间范围内的时间​ 如:开始时间2020-11-09 12:12:12,结束时间需要选中2020-

2020-11-25 13:50:51 2441

原创 离线安装Python、Locust以及第三方依赖包

1、安装编译Python1.1、解压python安装包tar -zxvf Python-3.7.0.tgz 1.2、安装依赖环境yum -y install zlib zlib-develyum -y install bzip2 bzip2-develyum -y install ncurses ncurses-develyum -y install readline readline-develyum -y install openssl openssl-develyum -y insta

2020-11-24 14:34:34 1474

原创 性能测试-Locust分布式执行

1、单进程运行如果采用no_web形式,则需使用--no-web参数,并会用到如下几个参数。 -c, --clients:指定并发用户数; -n, --num-request:指定总执行测试; -r, --hatch-rate:指定并发加压速率,默认值位1。 locust -H http://debugtalk.com -f demo.py --no-web -c1 -t2 如果采用web形式,,则通常情况下无需指定其它额外参数,Locust默认采用8089端口启动web;如果要使用其它端口,就

2020-09-22 19:24:17 685

原创 性能测试-Locust脚本加强篇(关联、检查点、集合点)

1、关联:通常在业务流程中有很多一系列的接口调用,从后面的接口依赖前边接口的结果数据from lxml import etreefrom locust import TaskSet, task, HttpUserclass UserBehavior(TaskSet): @staticmethod def get_session(html): tree = etree.HTML(html) return tree.xpath("//div[@cl

2020-09-22 19:22:56 871

原创 性能测试-Locust参数篇

1、循环取可以重复使用的数据csvData.csv1,12,23,34,45,56,67,78,89,9locust2.pyfrom locust import TaskSet, task, HttpUser, HttpLocust, between, tag, constantimport csvclass UserBehavior(TaskSet): def on_start(self): self.index = 0 # @tag(&

2020-09-22 19:15:47 433

原创 Angular短信模板校验代码

1、短信模板内容验证码 ${username} 12345验证码 ${username} 12345验证码 ${username} 12345从代码中提取 username, 并判断验证码 username中只存在英文字母2、内容校验,提取模板中${}的内容并且,内容只能使用英文smsTemplateContentChange(value){ // 短信模板内容 校验 const error = this.smsTemplateForm.get('templateConte

2020-09-21 14:58:13 232

原创 性能测试-locust简介及使用

1、JMeter和Locust的对比说明1)开源许可证工具许可范围的问题是最重要的问题之一,因为您可能想知道是否需要支付额外的第三方工具来完成负载测试。 如果某个工具是开源的,那么您几乎可以实现为性能测试设置的任何目标,而无需任何额外付款。 开源JMeter和Locust也不例外。JMeter和Locust都提供了许可软件许可证,该许可证支持免费软件,对软件的分发方式提出最低要求。 JMeter是由Apache开发的,它基于Apache License 2.0,而Locust是由一个由社区驱动的开发人

2020-09-05 15:16:10 1962

原创 Angular自定义管道pipes过滤器

一、状态类型转对象的特定值1、自定义管道过滤器StatusFilterPipe.tsimport { Pipe, PipeTransform } from '@angular/core';export class PipeVo { value: string; label: string;}@Pipe({ name: 'statusFilter', pure: false})export class StatusFilterPipe impl

2020-08-19 15:41:22 657

原创 angular密码和确认密码的校验

确认密码<input nz-input formControlName="password" (ngModelChange)="passwordChange($event)" [(ngModel)]="resetPassWordVo.password" required type="password" autocomplete="off"><input nz-input formCont

2020-08-17 11:42:22 1342

原创 angular的input输入搜索防抖,避免keyup造成请求过于频繁,以及如何封装成input组件的指令

一、常见的搜索功能<input nz-input [(ngModel)]="paramsChannelVo.name" (keyup)="getData(paramsChannelVo.name)" placeholder="系统名称" />input的keyup事件把每次按键弹起都发送给了 getData() 方法。这样一个绑定就造成了,每输入一个字符就会进行一次搜索,如果使用中文输入法,最后回车写入中文时,又有可能造成不会进行

2020-08-01 11:46:36 1424

原创 ng-alain的sf如何自定义部件

一、背景最近使用ng-alain做前端,sf的部件很丰富,但是做起来之后就会发现,多多少少会有一些不符合需求的东西,比如:这是一个string的部件,后边跟上一个单位看着很不错,但是我们通常在使用number时会更需要这个单位,然而官方的部件并没有再比如:我想做一个编辑框,要求内容不可编辑,并且该内容要从别的列表进行选择,下拉选择可以满足需求,但是如果内容太多,有时就不方便使用下拉框了,那么这时候我们就需要自定义二、自定义ng-alain部件的流程1、组件的整体结构2、首先,组件clic

2020-06-12 10:18:24 1600

原创 Spring-手写Spring注解版本事务,Spring事物的七大传播行为

一、注解1、什么是内置注解(1)@SuppressWarnings 再程序前面加上可以在javac编译中去除警告--阶段是SOURCE(2)@Deprecated 带有标记的包,方法,字段说明其过时----阶段是SOURCE(3)@Overricle 打上这个标记说明该方法是将父类的方法重写--阶段是SOURCE1.1、@Overricle案例演示 @O...

2020-01-20 10:20:36 952

原创 Spring-SpringAOP原理,手写Spring事务框架

一、Spring核心知识Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应...

2020-01-03 14:02:04 988

原创 JVM性能优化--类加载器,手动实现类的热加载

一、类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加...

2019-12-23 10:50:27 925

原创 JVM性能优化--字节码技术

一、字节码技术应用场景AOP技术、Lombok去除重复代码插件、动态修改class文件等二、字节技术优势Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等。实现字节码增强的主要步骤为:1、修改字节码在内存中获取到原来的字节码,然后通过一些工具(如 ASM,Java...

2019-12-18 09:09:12 604

原创 JVM性能优化--JVM参数配置,使用JMeter简单测试配合说明参数调优

一、JVM参数配置1、常见参数配置-XX: PrintGC 每次触发GC的时候打印相关日志-XX: UseSerialGC 串行回收-XX: PrintGCDetails 更详细的GC日志-Xms 堆初始值-Xmx 堆最大可用值-Xmn 新生代堆最大可用值-XX:Surviv...

2019-12-16 11:45:52 1639

原创 JVM性能优化--Java的垃圾回收机制

一、Java内存结构1、Java堆(Java Heap)  java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。  java堆是垃圾收集器管理的主要区域,因此也被成为“GC堆”(Garbage Collected Heap)。...

2019-12-11 10:36:41 1043 1

原创 设计模式之原型模式、策略模式、观察者模式

一、原型模式1、什么是原型模式克隆原型模式是一个创建型的模式。原型二字表明了改模式应该有一个样板实例,用户从这个样板对象中复制一个内部属性一致的对象,这个过程也就是我们称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更高效。2、原型模式应用场景(1)类初始化需要消化非常多...

2019-12-03 10:25:35 903

原创 设计模式之适配模式、外观模式

一、适配模式1、什么是适配器在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。2、适配器分类适配器分为,类适配器、对象适配、接口适配方式类适配器方式采用继承方式,对象适配方式使用构造函数传递3、...

2019-11-28 09:00:42 880

原创 Java中使用Calendar进行获取指定时间,使用SimpleDateFormat进行格式化转换

java中使用Calendar获取指定的时间public class DateTranslate { /** * 获取指定日期的间隔月份的第一天的日期 * @param date * @param sep * @return */ public static Date getMonthFirstDay(Date date, In...

2019-11-27 19:47:14 1723

原创 Angular中ViewChild\ngAfterViewInit\Promise的使用,在父组件初始化时等待子组件的返回值

1、子component中的异步方法initCreateJob = () => new Promise((resolve, reject) => { setTimeout(() => { this.spiderFormService.saveUserJob(this.spiderJobInfo).subscribe((res: Res...

2019-11-26 13:52:33 886

原创 设计模式之建造者模式、模版方法

一、建造者模式建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。建造者模式通常包括下面几个角色:1、Builder:给出一个抽象接口,以规范产品...

2019-11-19 16:35:16 932

原创 XXL-JOB使用命令行的方式启动python时,日志过多导致阻塞的解决方式

一、Runtime.getRuntime().exec()的阻塞问题这个问题也不能算是XXL-JOB的问题,而是Java的Runtime.getRuntime().exec()造成的,BufferedReader的缓冲区大小有限,当不能及时从缓冲区中把输出取走,那么缓冲区满了之后就会导致程序阻塞;1、如何解决最简单的方式就是将正常输出和异常输出使用两个不同的线程进行操作Process p...

2019-11-18 11:29:06 4114

原创 Spring Boot后端与Angular前端进行timestamp的交互

后端使用java.sql.Timestamp后端vo字段类型使用import java.sql.Timestamp;Mapper可以为字段加上属性jdbcType="TIMESTAMP" 也可以不加<result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>Angular前端vo无论后端使...

2019-11-14 13:47:20 1091

原创 设计模式之代理模式

代理模式通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现) ,AOP核心技术面向切面编程。1、代理模式应用场景SpringAOP、事物原理、日志打印、权限控制、远程调用、安全代理 可以隐蔽真实角色2、代理的分类静态代理(静态定义代理类)动态代理(动态生成代理类)Jdk自带动态代理Cglib 、javaassist(字节码操作...

2019-11-05 10:14:21 834

原创 设计模式之工厂模式

一、什么是工厂模式实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式二、工厂模式好处工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。三、工厂模式分类1、简单工厂模式简单工厂模式相当于是一个工厂中有各种...

2019-10-30 14:01:47 850

原创 设计模式之单例模式

一、设计模式1、设计模式分类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。2、设计模式的六大原则1)、...

2019-10-28 16:03:27 869

原创 设计模式之反射机制

一、 什么是Java反射就是正在运行,动态获取这个类的所有信息。1、反射机制的作用- 1,反编译:.class-->.java- 2.通过反射机制访问java对象的属性,方法,构造方法等;2、反射机制的应用场景Jdbc 加载驱动-----Spring IOC3、反射机制获取类有三种方法 //第一种方式: Classc1 = Class.for...

2019-10-28 09:14:14 925

原创 并发编程之Disruptor并发框架

一、什么是DisruptorMartin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使`用事件源驱动方式。业务逻辑处理器的核心是Disruptor。Disruptor它是一...

2019-10-24 09:53:29 369

原创 并发编程之Java锁

一、重入锁锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下 ReentrantLock 和synchronized 都是 ...

2019-10-22 09:52:59 865

原创 并发编程之Callable异步,Future模式

Callable在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。不过,Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Callable用来执行任务,产生结果,而Future用...

2019-10-19 18:37:31 978

原创 并发编程之线程池

一、线程池1、什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消...

2019-10-15 09:17:27 840

原创 Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)

一、HttpPost上传文件public static String getSuffix(final MultipartFile file){ if(file == null || file.getSize() == 0){ return null; } String fileName = file.getOriginalF...

2019-10-14 09:54:03 1350

原创 并发编程之并发队列

一、并发队列在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列非阻塞,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。1、阻塞队列与非阻塞队阻塞队列与普通队列的区别在于:阻塞队列:当队列是空的时,从队列中获取元素的操作将会被阻塞,试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的...

2019-10-13 18:30:30 950

原创 多线程之间实现通讯(生产者与消费者)

多线程之间通讯实现(并解决线程安全问题)class Res { public String userName; public String sex;}class InputThread extends Thread { private Res res; public InputThread(Res res) { this.res = res...

2019-10-10 21:19:34 943

原创 并发编程之多线程线程安全

一、什么是线程安全?为什么有线程安全问题?当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。代码:public class ThreadTrain implements Runnable { private i...

2019-10-07 18:07:39 871

原创 并发编程之多线程(Java)

一、线程与进程区别每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件...

2019-10-06 16:09:32 845

原创 设计模式的七大原则(Java)

一、OOP三大基本特性OOP面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识...

2019-09-29 11:51:12 321

原创 nginx中部署Django2.0遇到的问题

问题一、KeyError: ‘REQUEST_METHOD’Traceback (most recent call last): File "/usr/local/python3/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 145, in __call__ request = self.reque...

2019-08-05 10:09:06 297

原创 阿里云ECS Centos7使用Docker部署Django2.0 + mysql + nginx + uwsgi + supervisor,需要python2和python3共存

文章目录一、首先创建docker容器的目录目录说明1、wwwroot存放的是connorflow项目,app也是connorflow2、docker目录存放了两个docker容器的配置1)、djang-uwsgi-nginx目录存放的是2)、mysql目录存放的是mysql容器相关的配置查看docker镜像:二、创建MySQL的docker容器1、start.sh2、my.cnf三、创建Djang...

2019-08-03 22:05:12 1204 1

空空如也

空空如也

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

TA关注的人

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