自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (5)
  • 收藏
  • 关注

原创 WPS加载项系列(3)WPS项目部署

WPS加载项

2023-01-11 14:38:16 2239

原创 WPS加载项系列(2)第二个WPS项目

上一章讲解了官方提供的第一个wps项目,这个项目主要用来了解nodejs使用以及wps能实现哪些功能,后续在项目开发中,相似功能的开发可以有个参考。下面将要讲解官网提供的第二个wps项目,这个项目可以选择原生的js及html代码,也可以选择集成看vue前端框架的代码。一、如何新建 WPS 加载项1、管理员权限(如果安装的是wps个人版,不需要管理员权限)启动命令行,通过npm全局安装wpsjs开发工具包安装命令:npm install -g wpsjs更新命令:npm update -g

2022-04-05 21:31:54 4588 9

原创 WPS加载项系列(1)第一个WPS项目

前言任何一个新技术的学习使用,一般都由demo开始,然后逐步深入直到完全掌握,这个也不例外,所以这个系列的第一篇文章主要写的是如何将官方提供的demo跑起来。一、项目地址官方提供的演示示例(OA助手)https://code.aliyun.com/zouyingfeng/wps/tree/master官方提供的开发文档https://open.wps.cn/docs/office二、环境安装1.安装node.js下载地址:https://nodejs.org/en/d

2021-09-05 15:36:59 5032 14

原创 IDEA常用插件(一) — 自动生成时序图

一、插件安装1.在线安装File>Settings>Plugins>Browse Repositories搜索SequenceDiagram安装并重启idea2.离线安装下载地址:https://plugins.jetbrains.com/plugin/8286-sequencediagram/versions。二、插件版本SequenceDiagram 1.3.0对应idea版本 141.1—173.*SequenceDiagram 2....

2021-08-30 21:48:10 2975

原创 我的项目-字典替换 easydict

一、源码地址https://gitee.com/huojg123/easydict/tree/master二、介绍这是一个用于字典替换的项目,通过mvn package打成jar包后引入项目即可使用三、使用说明你只需要三步就可以简单的完成字典替换第一步,使用注解 @Dict 在实体类中标识需要字典转换的字段,其中dictTable为表名,dictType、dictCode、dictText为表中字典类型、字典编码、字典名称对应的字段名,dictTypeValue为本字段的类型名称,d

2021-08-22 17:05:13 463

原创 大话设计模式——25设计模式汇总

一、写在最后的话2年前就再学习设计模式了,但没有坚持下去,一直没有学完。虽然有加班比较多的原因,但更多的原因是下班后太累,懒得学习,自甘堕落。我为此感到羞愧,所以最近陆陆续续将剩下的设计模式全部学习完了。通过对《大话设计模式》这本书的学习,对设计模式有了初步的了解,希望以后能在项目实践中进一步的掌握。另外这本书其中一部分实例非常的好,强烈建议设计模式初学者学习!二、目录大话设计模式——01简单工厂模式大话设计模式——02策略模式...

2021-06-24 19:51:44 198 1

原创 大话设计模式——24访问者模式

一、概念表示一个作用于对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作适用于数据结构相对稳定的系统,它实现了数据结构和作用于结构上的操作之间的解耦目的是把处理从数据结构分离出来,如果系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式就比较合适优点是增加新的操作很容易,因为增加新的操作就意味着增加新的访问者缺点是访问者模式将有关的行为集中到一个访问者对象中,使得增加新的数据结构变得困难了二、代码示例public abstract c

2021-06-24 19:36:01 135 1

原创 大话设计模式——23解释器模式

一、概念解释器模式,给定一个语句,定义它的一种表示,并定义一个解释器,这个解释器使用该表示来解释语句。比如正则表达式。二、代码示例public abstract class Expression { public abstract void explain(Context context);}public class MyExpression extends Expression { @Override public void explain(Context c

2021-06-24 17:01:15 88

原创 大话设计模式——22享元模式

一、概念享元对象内部不会随环境改变而改变的共享部分称为内部状态,而随环境改变而改变的不共享部分称为外部状态。运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量相似类的开销。如果一个应用程序使用了大量对象,而且对象的大多数状态可以外部状态,此时可以考虑使用享元模式。比如围棋,颜色是棋子的内部状态,位置是棋子的外部状态。如果使用享元模式来处理棋子,棋子对象可以减少到只有两个实例。二、代码示例第一版public abstract class Flyweight { pu

2021-06-24 10:40:14 102 1

原创 大话设计模式——21中介者模式

用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。由于有了中介者模式,使得具体伙伴之间的发送和接受信息其实是通过中介者来完成的,这就减少了它们之间的耦合度。注意:中介者模式很容易在系统中应用,也很容易在系统中误用。当系统出现“多对多”交互复杂的对象群时,不要急于使用中介者模式,而要先反思你的系统在设计上是不是合理。由于中介者控制了集中化,于是交互复杂性变成了中介者的复杂性,这使得中介者会变得比任何一个具体伙伴都复...

2021-06-20 17:39:29 115

原创 大话设计模式——20职责链模式

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止注意:一个请求极可能到了链的末端都得不到处理,或因为没有正确配置而得不到处理...

2021-06-18 15:45:57 74

原创 大话设计模式——19命令模式

在调度类中把“行为实现者”中的方法分别封装成多个命令,通过调度类对请求排队或记录请求日志,以及支持可撤销的操作等行为。解决了“行为请求者”和“行为实现者”的紧耦合优点* 1.较容易地设计一个命令队列* 2.较容易地将命令计入日志* 3.允许接收请求方否决请求* 4.较容易地实现对请求的撤销* 5.较容易地新加入具体命令类...

2021-06-14 20:09:29 130

原创 大话设计模式——18桥接模式

一、概念桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。实现系统可能有多角度分类,每种分类都可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。...

2021-06-13 20:26:46 128 4

原创 大话设计模式——16迭代器模式

一、概念原型模式,可以理解为浅复制和深复制。二、代码示例

2021-06-12 20:32:17 100

原创 大话设计模式——原型模式

一、概念原型模式,可以理解为浅复制和深复制。二、代码示例/** * 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 */public class Prototype implements Cloneable { // 这是浅拷贝 public Object clone() throws CloneNotSupportedException { // 这个clone方法重写的是基类Object中的方法,所以通过super.clone()就可以

2021-04-17 11:26:46 108

原创 大话设计模式——15组合模式

一、概念将对象组成树形结构,以表示部分整体的层次结构。整体和部分可以被一致对待。当需求中体现整体和部分层次的结构,以及希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中所有的对象时,就可以考虑该模式。二、代码示例public abstract class Company { protected String name; public Company(String name) { this.name = name; } public a

2021-04-15 12:21:46 105

原创 大话设计模式——17单例模式

一、概念单例模式,顾名思义,就是保证只有一个实例。二、示例代码/** * 饿汉式,线程安全 */public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return instance; }}/**

2021-04-11 11:25:34 78

原创 大话设计模式——14备忘录模式

一、概念把要保存的细节封装在了Memento中,如果要改保存的细节也不用影响客户端。该模式比较适用于功能比较复杂但需要维护或记录属性的类,Originator可以根据保存的Memento还原到前一状态。比如需要实现命令的撤销功能,就可以使用备忘录模式来存储可撤销操作的状态。二、示例代码第一版public class Memento { private String state; public Memento(String state) { this.st

2021-04-10 11:00:21 75

原创 大话设计模式——13适配器模式

一、概念适配器模式,可以将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。一般情况下,系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境要求不一致的情况。二、示例代码第一版/** * 可以是具体的或抽象的类、也可以是接口 */public class Target { public void reque

2021-04-09 10:02:12 113

原创 大话设计模式——12状态模式

一、概念

2021-04-08 10:22:02 98

原创 大话设计模式——策略模式&委派模式

一、策略模式策略模式的实现过程不同,但结果相同。可以理解成由起点导航到终点,虽然乘坐的交通工具不同,路程也各不一样,但是目的地是同一个。二、示例代码public interface Strategy { void commonStrategy();}public class StrategyA implements Strategy { @Override public void commonStrategy() { System.out.pr

2021-04-02 14:50:15 347

原创 大话设计模式——委派模式

一、概念委派模式可以理解为委托中介,你委托中介替你卖房子,中介有你房子的钥匙,可以直接带买家看房。你不需要关注具体的过程,只关注最终的结果。用代码来解释的话,就是执行者A和执行者B同时实现执行接口的方法,进行具体的执行操作,委派者也实现执行接口的方法,但不进行具体的执行操作,反而通过持有被委派者的引用间接的执行操作。也就是说,干活是你的,功劳是我的,这就是委派模式。二、示例代码public interface IExecutor { void doing();}public c

2021-04-01 20:36:22 193

原创 《剑指Offer》366. 斐波纳契数列

描述ENG查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。 第i个数是第i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...在测试数据中第N个斐波那契数不会超过32位带符号整数的表示范围样例样例 1: 输入: 1 输出: 0 样例解释: 返回斐波那契的第一个数字,是0.样例 2: 输入: 2 输出: 1 样例解释...

2020-09-17 20:37:52 93

原创 《剑指Offer》9. Fizz Buzz 问题

描述ENG给你一个整数n. 从1到n按照下面的规则打印每个数:如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz. 如果这个数既不能被3整除也不能被5整除,打印数字本身。样例比如n=15, 返回一个字符串数组:[ "1", "2", "fizz", "4", "buzz", "fizz", "7", "8", "fizz", "buzz", "11", "fizz",...

2020-09-17 20:35:31 182

转载 【JVM】JVM调优初识

一、基本概念:JVM把内存区分为堆区(heap)、栈区(stack)和方法区(method)。由于本文主要讲解JVM调优,因此我们可以简单的理解为,JVM中的堆区中存放的是实际的对象,是需要被GC的。其他的都无需GC。JVM的内存模型从图中我们可以看到,1、JVM实质上分为三大块,年轻代(YoungGen),年老代(Old Memory),及持久代(Perm,在Java8中被取消,我们不做深入介绍)。2、垃圾回收GC,分为2种,一是Minor GC,可以可以称为YGC,即年轻代GC,

2020-09-05 10:21:22 99

原创 关于10年老项目bug排查的经验之谈

1.小黄鸭调试法先把问题描述清楚!2.梳理目前的已知点,通过已知界限扩展未知。3.二分法定位 一步步排查,将复杂问题简单化。4.复现问题,如果这个问题无法复现,属于神学范畴,可以忽略。5.结合日志逆推定位报错或有问题的代码的界限,确定了正常和错误的界限后,问题也就迎刃而解。有思路的话,直接筛选目的日志,按流程一步步看日志,最好使用tail捞取全量日志。当关键日志不清晰时,要查下该日志时间前后的日志,仔细推敲,细微之处一定会显露踪迹。6.如果不是这里,且没有思路时,反推模拟现场,如果你怎么

2020-08-31 20:26:10 367

原创 【Linux】使用expect实现shell自动交互

一、适用场景因为项目日志位置并不固定,每次查询日志的时候,都需要先通过容器托管平台获取到目标主机的ip和port。然后通过跳板机执行 ssh username@password 登陆容器主机,通过 docker ps | grep "端口" 获取dockerId,最后通过 docker exec –it "容器ID" sh 登陆目标主机容器。二、实现思路每次手动输入的话效率很低,所以编写了通过expect实现shell自动交互的脚本。三、脚本代码#!/usr/bin/expect..

2020-06-07 13:55:26 318

原创 Window下pip的安装

一、概念pip是python官方推荐的包管理工具,属于python的一部分,其中pip可执行文件在Python 2.7.16\Scripts中。二、安装1. 安装Python,并配置环境变量 D:\Program Files\Python 2.7.162. 下载脚本文件get-pip.py https://bootstrap.pypa.io/get-pi...

2020-04-28 12:20:54 205

原创 数据库表已存在时如何先删除后创建(转载)

一、MYSQL如何实现drop table if exists 表名;二、ORACLE如何实现-- 1.创建procedurecreate or replace procedure proc_dropifexists( p_table in varchar2) is v_count number(10);begin select count(*) into v_coun...

2020-03-21 20:45:07 1584

原创 【Linux】tcpkill离线rpm安装

一、概念TCPKILL是一个TCP连接释放工具,主要用于客户端TCP连接未释放导致Address already in use情况。TCPKILL默认只能干掉活跃连接,无法释放非活跃连接、半连接。二、安装1.通过yum安装yum install dsniffyum -y install dsniff --enablerepo=epel2.通过rpm安装rpm -ivh...

2019-12-16 11:04:56 2412

原创 微服务SpringCloud之Feign(一)

一、是什么Feign是一种声明式、模板化的HTTP客户端,Feign可以帮助我们更快捷、优雅地调用HTTPAPI,类似controller调用service一样。二、做什么在SpringCloud中,使用Feign非常简单。创建一个接口,并在接口上添加一些注解,就可以代替HttpClient的功能。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spr...

2019-12-02 20:49:53 153

原创 海量数据如何进行SQL优化

一、大表插入二、大表删除三、大表更新四、大表查询

2019-11-22 10:03:38 271 1

原创 可执行JAR包(二)执行

一、java -jar1. java -jar XXX.jar 这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。2. java -jar XXX.jar & &代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。3. nohup java -jar XXX.jar &...

2019-11-13 11:54:10 269

原创 可执行JAR包(一)打包

一、Eclipse通过MANIFEST.MF文件1.在项目根目录(src同级目录)创建META-INF\MANIFEST.MF文件Manifest-Version: 1.0Main-Class: com.asiainfo.RunMainClass-Path: ./lib/commons-collections-3.2.jar ./lib/commons-dbcp-1.2.2.jar...

2019-11-13 11:41:56 416

原创 彻底理解Java ClassLoader

一、ClassLoader 用途用来加载 Class 的,它负责将 Class 的字节码形式转换成内存形式的 Class 对象。每个 Class 对象的内部都有一个 classLoader 字段来标识自己是由哪个 ClassLoader 加载的。二、ClassLoader 特性1.延迟加载JVM 运行并不是一次性加载所需要的全部类的,它是按需加载,也就是延迟加载。程序在运行的过程中...

2019-11-10 14:04:01 347

转载 管理程序员的第三年,给大家的一些建议(转)

我是三年前从一名普通程序员转型成为部门负责人。1024是2的10次方,今年的10月24日也是网上公认的第五个程序员节日,前几天还专门组织了部门员工庆祝了程序员节日,和我们部门的程序员讲了下自己的心得。我们公司的CEO 是公司的第一名程序员,公司高层有一半是程序员转型的,可以看到互联网公司程序员晋升的概率还是蛮大的。一、我作为一名程序员,给大家一些建议第1点,不要只会一种语言和框架...

2019-10-31 14:13:41 150

原创 快捷键系列(一)Windows提高效率的快捷键

一、前言熟记开发工具的快捷键能极大的提高工作效率,所以才有了这一系列的总结。值得一提的是,快捷键不是背下来的,而是练出来的!二、ALT键【ALT】+【Enter】 显示所选项目的属性【ALT】+【空格键】 打开活动窗口的快捷方式菜单【ALT】+【向左键】 返回【ALT】+【向右键】 前进【ALT】+【Page Up】 向上移动一个屏幕【ALT】+【Page Do...

2019-09-30 21:10:42 481

原创 大话设计模式——11观察者模式

一、概念观察者模式又叫发布-订阅模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能自动更新自己。特点:将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象的一致性。我们不希望为了维护一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。而观察者模式的关键对象...

2019-08-27 14:16:57 167

原创 Spring Boot框架(1)搭建简单web项目

前几天为了写一个websocket的demo,需要搭建一个web项目,本以为很简单,结果遇到一些问题。网上的文章不是不全面,就是没提示重点,所以就有了这篇文章。一、项目描述后台 springboot前端 jsp二、pom文件 <parent> <groupId>org.springframework.boot</groupI...

2019-08-26 10:18:37 165

原创 IDEA(一)如何在IDEA中远程调试Jar包

项目的部署方式有在本地搭建服务器进行部署,或是将项目在远程服务器上面部署。一般如果在本地搭建服务器的时候,可以直接选择启动或是debug,但是如果项目部署在远程的服务器上面的时候, 我们该如何进行调试呢?1. 启动jar在服务器中,通过以下命令启动可执行jar包java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,a...

2019-07-18 11:10:08 4038

SequenceDiagram-2.1.2.zip

SequenceDiagram-2.1.2.zip

2021-08-30

SequencePlugin-1.3.0.zip

SequencePlugin-1.3.0.zip

2021-08-30

tcpkill资料包.zip

tcpkill是一个TCP连接释放工具,主要用于客户端TCP连接未释放导致Address already in use情况。tcpkill默认只能干掉活跃连接,无法释放非活跃连接、半连接。本下载包中的tcpkill为修改后tcpkill,可以释放非活跃连接、半连接。 指令:sudo tcpkill -s 192.168.103.12:10261 -d 192.168.103.169:12345

2019-12-16

关于大表SQL如何进行优化

文档中展示了如何对海量数据进行增删改查,另外详细介绍了Oracle数据库的索引以及Oracle数据库的锁机制,附件包含.xmind文件,需要安装xmind思维导图软件

2019-11-22

springboot-web.zip

demo展示了如何使用springboot搭建一个jsp页面的简单web项目!

2019-08-26

空空如也

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

TA关注的人

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