自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进修的CODER

编程语言的学习,算法的深入。走在学习的路上。

  • 博客(205)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringBoot Java实现Http方式分片下载断点续传+实现H5大视频渐进式播放

一、功能目的SpringBoot 实现Http分片下载断点续传,从而实现H5页面的大视频播放问题,实现渐进式播放,每次只播放需要播放的内容就可以了,不需要加载整个文件到内存中;二、Http分片下载断点续传实现package com.unnet.yjs.controller.api.v1;import com.unnet.yjs.annotation.HttpMethod;import ...

2020-11-25 17:31:42 10994 14

原创 Spring注解配置AOP切面实现注解切点记录方法执行日志和时间

1、方法执行日志方案设计1.1 注解的方式通过定义日志注解+解析注解的方式来实现记录方法执行日志,这种方式在需要监控的接口实现方法上打上定义的注解,再通过解析注解的方式将日志记录到文件。注解方式的优点是粒度细,在需要监控的服务接口实现方法打上注解就可以实现记录日志。缺点是服务接口太多的话,每一个接口都需要打上注解,比较繁琐。定义注解import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPoli

2020-08-05 22:37:37 1565

原创 Springboot @Value读取map或list的properties配置

一、properties文件内容config-prod.properties属性配置文件:yjs.client.functional.filter=A,B,C,Dyjs.client.functional.map={key:"value"}二、属性文件加载配置PropertyProductConfig配置文件加载类import org.springframework.context....

2020-04-25 07:34:04 5917

原创 nginx配置多个server监听80端口 根据域名转发端口服务

一、背景目标一台服务器上面有多个服务,不同的服务有不同的端口,因为端口不好记住,所以决定配置根据域名来访问,实现不同域名转发到不到端口服务。需要用到nginx的端口转发功能。实现的目标截图如下:PS:截图中有两个域名,missbe.cn对应端口一服务,doc.missbe.cn对应端口二服务;二、nginx配置安装PS:安装nginx可以通过yum install -y ngin...

2020-02-28 20:01:27 20995 7

原创 CentOs7排查CPU高占用

一、查看CPU高占用## 执行top命令topPS:P按照CPU排序显示,M按照内存排序;二、查看进程中最占CPU的线程## top中最高占用CPU的PIDtop -p 24212 -H三、最耗CPU的线程PID转换为16进制输出 printf "%x \n" 24213四、查看高占用CPU具体问题jstack 24213| grep 5e95 -A 30...

2020-02-28 20:00:40 15470 2

原创 微服务Git+Docker+Jenkins+Maven一键CI/CD持续集成部署

###一、介绍本文介绍利用Git+Docker+Jenkins+Maven实现一键CI/CD持续集成部署,需要的软件有Git、Docker、Jenkins、Maven;Jenkins需要集成Git和Maven插件,实现代码拉取和代码打包工作;本文思路就是利用Git从Git平台拉取源代码,然后利用Maven打包,然后使用Docker构建镜像,将镜像上传到自己的DockerHubt私服,其它服务器从...

2019-11-07 17:30:45 1123

原创 SpringBoot2+Swagger2集成配置+问题请求不到swagger-ui.html解决方案

一、配置Maven <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.ou...

2019-05-30 21:07:32 15431 4

原创 springboot配置文件加载不到的问题

这个问题困扰我很久呀,通过不停的百度,查找资料,还是没有解决最后发现问题再于找不到资源。问题:springboot启动加载不到src/main/resources下的配置文件application.yml我IDE里面看着配置文件命名在,但是并没有发布到target,原因就在这里,肾痛找了好久的错误原来是文件根本就没发布。通过debugspringboot的启动代码,以及晚上查,才发...

2018-12-15 20:28:43 31267 5

原创 mysql的时区错误问题: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one

问题:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone....解决方案:show variables like '%time_zone%';set global time_zone='+8:00';...

2018-11-15 15:40:04 30919 16

原创 使用javax.validation.constraints包的注解实现校验

一、添加maven依赖包 &lt;!-- https://mvnrepository.com/artifact/javax.validation/validation-api --&gt; &lt;dependency&gt; &lt;groupId&gt;javax.validation&lt;/groupId&gt; &lt;artifactId&gt;v...

2018-09-16 16:07:01 56362 5

原创 超级详细的Maven使用教程

什么是Maven?如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包...

2018-08-13 13:05:40 229273 44

原创 Filter过滤器及HttpServletRequestWrapper使用

Filter过滤器是一种比较实用的东西,可以过滤不良信息,对提交来的信息进行处理。是Request和Response之间的传输纽带。具有重要作用,下面用一个Filter过滤器的程序来熟悉过滤器的使用。在提交的数据信息中,有一些信息需要过滤掉。例如,一些暴力情色信息,我们可以通过过滤器来过滤掉这些信息,过滤器功能代码如下:public class WordFilter im...

2016-05-07 18:05:18 10730

原创 JSP+Servlet实现注册登录功能

JSP是表现层,显示出要注册的内容。用表单提交进行数据转发,表单提交给Servlet进行处理,进行数据库连接将数据写入数据库,写入成功,返回成功注册信息。具体代码如下: JSP代码负责显示,充当显示层。与用户进行交互,将用户提交数据转发给服务器处理的功能。 用户注册 body{ margin: 0px;font-size: 12px; }

2016-05-07 16:29:48 11686 2

原创 IDEA抑制编译告警@SuppressWarning注解属性说明

IDEA抑制编译告警@SuppressWarning注解属性说明

2022-06-07 15:47:46 1344 2

原创 涉及通配符的多个元素寻找最优匹配方法

针对于多个元素寻找最优匹配的方法,举例来说我们想要查找一个学生的信息,已经知晓了该学生的姓氏+所在省份+所在城市+大学名称,现在我们要从一份学生列表当中去找到指定的这名学生,常规思路就是采用**equals**方法去学生列表中匹配每一项信息是否都相同,如果都能完全匹配上,表明就是我们想要找到目标。现在出了一点变化,这个学生列表中出现了通配符(*/表示任意信息都能匹配上,如表格所示)的情况,上面的这种方法就不能满足我们的需求了,可能会有很多个学生都能够匹配上,例如我们需要查找一名在浙江省杭州市浙大并且姓王的

2022-05-11 17:42:25 682

原创 Google Guava常用工具类入门使用介绍及样例说明

目录概述基础工具1.Optional2.Objects.equals3.Objects.hash4.MoreObjects.toStringHelper5.ComparisonChain6.Preconditions集合工具1.ImmutableSet2.ImmutableList3.4.5.6.字符串工具1.2.3.4.5.6.附录1.Person.java概述工具类将经常用的一些方法进行了封装,遇到相同的场景时不需要重复造轮子,从而大量节省开发人员时间和提高工作效率,Guava就是谷歌发布的高效率的

2022-03-04 18:11:34 2469

原创 OTP一次性动态密码工具Java实现

一次性密码(One Time Password,简称OTP),又称“一次性口令”,是指只能使用一次的密码。一次性密码是根据专门算法、每隔60秒生成一个不可预测的随机数字组合,iKEY一次性密码已在金融、电信、网游等领域被广泛应用,有效地保护了用户的安全。

2022-01-12 14:24:24 2363

原创 java: Workaround: to make project compile with the current annotation proces

IDEA报错问题java: Workaround: to make project compile with the current annotation processor implementation, start JPS with VM option: -Djps.track.ap.dependencies=false When run from IDE, the option can be set in "Compiler Settings | build process VM options

2021-07-12 17:47:14 2554 2

原创 数据归一化:两种常用的归一化方法

数据标准化(归一化),不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:一、min-max标准化(Min-Max Normalization)也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:x∗=x−minmax−minx^*=\frac{x-min}{

2021-01-18 15:29:43 7687

原创 同一宿主机SpringBoot应用容器无法连接到MySQL容器,Host is unreachable (Host unreachable)

一、问题Docker主机无路由,Host is unreachable (Host unreachable),主机上面部署了MySQL容器,SpringBoot应用程序镜像在同一台主机上,应用容器需要连接到MySQL容器,会出现主机无路由,连接不上同一台主机上部署的MySQL容器;二、解决方法1.ifconfig·查看IP信息2.iptables -I INPUT 4 -i docker0 -j ACCEPT添加到容器的路由3.方案二:直接使用主机路由信息,不建立桥接网络docker r

2020-12-18 22:03:46 1428 1

原创 Docker镜像导出与导入,save命令和load命令

1.docker savedocker save : 将指定镜像保存成 tar 归档文件。docker save [OPTIONS] IMAGE [IMAGE...]OPTIONS 说明: -o :输出到的文件。示例:docker save -o edge.tar edge-gateway:1.0.0# ordocker save > edge.tar edge-gateway:1.0.02.docker loaddocker load : 导入使用 docker save

2020-12-18 21:09:01 2237 2

原创 Java同步阻塞Socket网络通信多线程编程代码模式

服务端编程模式public class Server { public static void main(String args[]) throws IOException { //为了简单起见,所有的异常信息都往外抛 int port = 8899; //定义一个ServerSocket监听在端口8899上 ServerSocket server = new ServerSocket(port); while (true) {

2020-08-29 15:37:25 295

原创 Redis面试知识点Q&A【推荐】

Redis知识图谱一、为什么用Redis?高并发内存可以承受更多的请求,实现更高的并发高性能直接操作内存比直接操作数据库响应更快二、为什么Redis快?redis高效原因纯内存操作非阻塞I/O多路复用单线程避免频繁上下文切换redis线程模型多个socket并发产生不同的操作,不同的操作对应不同的事件I/O多路复用程序监听多个socket,将产生的事件加入事件分派队列文件事件分派器从事件队列中取出一个事件分派给事件处理器事件

2020-08-28 16:15:07 221

原创 数据库面试知识点Q&A【推荐】

数据库知识图谱一、数据库范式1NF每一列都是不可分割的原子数据项2NF记录唯一依赖于主键,消除部分函数依赖,(x,y),z,x->z3NF任何非主属性不依赖非主属性,消除部分函数依赖,(x,y,z),x->zBCNF非主属性不能对主键子集依赖,消除对主码子集的依赖二、数据库索引索引类型主键索引:InnoDB引擎,数据表无主键,会隐式生成一个6字节的rowid唯一索引普通索引联合索引全文索引聚簇索引:叶子结点存储具体的数据,

2020-08-28 15:50:13 201

原创 【Java面试系列二】高阶JVM知识点Q&A【推荐】

一、垃圾回收什么是垃圾?没有引用的失效对象,不再被使用的对象;如何找到垃圾?引用计数法:对象头保存被引用的次数,存在循环引用的问题强引用:new关键字指向的,永远不会被回收软引用:内存不足才会被回收弱引用:每一次GC时就会被回收虚引用:虚引用加入引用队列,在其关联的虚引用出队前,不会彻底销毁该对象可达性分析:从根结点向下是否存在引用链;根对象包括虚拟栈对象引用、本地方法栈对象引用、方法区常量对象引用、方法区静态对象引用不可达对象并非"非死不可"不可达对象第一次被标记并

2020-08-28 15:34:10 243

原创 【Java面试系列一】基础核心高频知识点Q&A【推荐】

一、Java基础知识Java基本数据类型byte 1字节boolean 1字节short 2字节char 2字节int 4字节float 4字节long 8字节double 8字节关于StringString是final类型的不允许修改,字符串相加产生的对象都是新对象,字符数组定义private final char

2020-08-28 15:32:48 300

原创 Java实现23种设计模式(十七):策略模式(重点掌握)

二十三种设计模式分类一、概述策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。主要意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护。优点多重条件语句不易维护,而使用策略模式可以避免

2020-06-11 11:40:48 368

原创 Java实现23种设计模式(十六):观察者模式(JDK方式实现和原生实现)(重点掌握)

二十三种设计模式分类一、概述观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。主要意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。优点降低了目标与观察者之间的耦合关系,两者之间是抽

2020-06-11 11:08:54 376 1

原创 Java实现23种设计模式(十五):中介模式

二十三种设计模式分类一、概述中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。主要意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相

2020-06-11 10:40:17 334

原创 Java实现23种设计模式(十四):迭代器模式

二十三种设计模式分类一、概述迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个集合对象,主要用于容器对象。优点迭代器模式是一种对象行为型模式,其主要优点如下。访问一个聚合对象的内容而无须暴露它的内部表示。遍历任务交由迭代器完成,这简化了聚合类。它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类以支持新的遍历

2020-06-10 15:39:50 686

原创 Java实现23种设计模式(十三):备忘录模式

二十三种设计模式分类一、概述备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。优点备忘录模式是一种对象行为型模式,其主要优点如下。提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。实现

2020-06-10 15:30:24 337

原创 Java实现23种设计模式(十二):命令模式

二十三种设计模式分类一、概述命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。优点降低系统的耦合度。命令模式能将调用操作的对象与实现该操作的对象解耦。增加或删除命令非常方便。采用命

2020-06-10 15:23:06 333

原创 Java实现23种设计模式(十一):代理模式(重点掌握)

二十三种设计模式分类一、概述在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。优点代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的功能;代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度;缺点在客户端和目标对

2020-06-10 11:51:04 219

原创 Java实现23种设计模式(十):享元模式

二十三种设计模式分类一、概述享元(Flyweight)模式的定义:运用共享技术来有効地支持大量细粒度对象的复用。它通过共享已经存在的又橡来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。主要解决在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。优点相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。缺点提高了系统的复杂度,需要分离出外部状态

2020-06-10 11:31:39 207

原创 Java实现23种设计模式(九):外观模式

二十三种设计模式分类一、概述外观(Facade)模式的定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。优点外观(Facade)模式是“迪米特法则”的典型应用,它有以下主要优点。降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易

2020-06-10 10:38:37 204

原创 Java实现23种设计模式(八):装饰器模式

二十三种设计模式分类一、概述装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等。在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实现。

2020-06-05 15:55:15 249

原创 Java实现23种设计模式(七):组合模式

二十三种设计模式分类一、概述组合(Composite)模式的定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。优点组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码;更容易在组合体内加入新的对象,客户端不会因为加入了新的对

2020-06-05 15:54:11 336

原创 Java实现23种设计模式(六):责任链模式(重点掌握)

二十三种设计模式分类一、概述责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了。优点降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的

2020-06-05 15:53:26 258

原创 Java实现23种设计模式(五):桥接模式

二十三种设计模式分类一、概述桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。桥接模式主要想实现的是抽象部分和实现部分两个维度分别独立变化,用组合关系再将这两部分联系起来;例如某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很

2020-06-05 11:03:44 250

原创 Java实现23种设计模式(四):适配器模式(重点掌握)

二十三种设计模式分类一、概述适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。优点客户端通过适配器可以透明地调用目标接口。复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。将目标类和适配者类

2020-06-05 10:45:47 272

C++课程设计文档源码

C++课程设计文档,主要实现了俄罗斯方块,附上完整源代码,欢迎参考学习。俄罗斯方块由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。

2016-05-05

空空如也

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

TA关注的人

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