自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小胖

偶尔写写技术文章

  • 博客(42)
  • 收藏
  • 关注

原创 RequestMappingHandlerMapping注入的正确姿势

文章目录简述基本知识点第一种方式:Controller注入第二种方式:从IOC的ApplicationContext里面获取简述RequestMappingHandlerMapping是springMVC里面的核心Bean,spring把我们的controller解析成RequestMappingInfo对象,然后再注册进RequestMappingHandlerMapping中,这样请求进来以后就可以根据请求地址调用到Controller类里面了。Controller毕竟是写死的,在有的情况下我们可

2021-01-19 10:53:13 4409 5

原创 开发经理的感受(二)

文章目录

2020-10-28 21:38:15 1757 2

原创 WebSocket长连接因为网络波动而导致客户端的“假离线”---问题发现、分析到解决

文章目录简介问题的现象、场景和解决方案基本的部署架构问题是什么呢?假离线到底是怎么来的?验证猜想解决问题如何发现问题的呢?简介这次分享是在混合云场景下,基于websocket长连接,实现Server-Client(多个)架构模式中,云服务需要维护客户端的状态,但是云端维护的状态可能和实际的客户端的状态不一致,可能就会导致一些奇怪的事情发生,比较有意思的一个问题吧,非常不容易发现的一个问题,必须需要一个合适的契机才可以去发现。前面直接描述问题和解决方案,后面用一定的篇幅详细讲述一下怎么发现的这个问题。问

2020-08-24 21:16:54 5451 1

原创 vert.x缺陷---不支持redis的哨兵模式(v3.5.2)-Sentinel unreachable. ERR unknown command `SELECT`, with args

文章目录总览问题描述问题跟进并且明确:select命令有问题问题的初步结论:用telnet证明哨兵节点不支持select命令问题的解决方案问题的反思总览redis的哨兵模式,不做过多解释,可以网上自行搜索,仅仅说明一些和本缺陷有关的内容吧:哨兵是负责放哨的,它本身不负责操作数据,并且redis本身的节点都是也是主从,每一个节点都会一个哨兵,它们的端口号不同。客户端在连接的时候,配置的是哨兵的地址,连接有两个过程:连接哨兵,验证密码,然后通过主节点名称去咨询主节点的IP和端口。客户端拿到主节点地址后

2020-07-29 01:14:16 7896

原创 一次线上环境内存问题分析和解决过程:tomcat(JVM参数配置)和vertx的hazelcast集群处理(长连接分配、内存大对象分析、异步存储日志方案)

SaaS

2020-07-28 01:17:09 1182

原创 开发经理的感受(一)

文章目录背景介绍身份的转变程序猿开发经理开发过程管理工作的安排背景介绍当上开发经理3个多月。团队共5个人。团队主要负责混合云相关的一款公有云产品的优化和维护。身份的转变程序猿如期完成开发经理安排的开发工作。遇到一些解决不了的问题,可以说:完不成了,抛给开发经理。对小组内的其它同事的工作可以不关心不过问。开发经理不再过多关心自己写了多少漂亮代码,完成了多么优秀的一些事情;而是以整个团队的整体输出为主要目标。接到需求了,首要考虑的问题是:1.什么时候完成。2.谁来完成比较合适(

2020-06-27 15:11:28 768

原创 IDEA提示: Error while executing command. Error while executing process. Cannot run program "git"

使用idea在打包的时候,用了org.codehaus.mojo:buildnumber-maven-plugin这个插件,打包的过程中就报错了:[ERROR] Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.4:create (default) on project gwmanage: Cannot get...

2020-03-21 12:59:39 4382

原创 maven-assembly-plugin插件的简单使用说明

文章目录总体介绍目标集合都有哪些呢?基本用法默认的描述文件zip的简单实用简单总结总体介绍assembly这个词,在这个插件里面我认为就可以翻译成:集合。同时官网用一句话来介绍这个插件:The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output alo...

2020-03-04 00:34:15 3307

原创 使用maven-assembly-plugin插件,描述文件中dependencySets定义打出来的依赖的jar包名称中带时间戳解决办法

如标题,使用maven-assembly-plugin插件的时候,打出来的依赖包有的带了时间戳,这是个问题,需要处理一下。其实之前也遇到过类似的问题,比如maven-jar-plugin在打jar包的时候,Class-Path添加的依赖里面,带了时间戳,这个可以通过false来解决。又比如使用maven-war-plugin打出来的带时间戳解决方案如下: <plu...

2020-03-03 23:36:44 3938

原创 从HTTP的底层规范上面学习一下,用实际的例子保你醍醐灌顶

文章目录简述关于Http的基本标准Http的四要素四要素举例最常见的get请求普通字符串的post请求普通form表单的post请求multi-form(多表单)的post请求Http传递参数的方式不同的方法有不同的处理方式其它内容总结简述本文不做基础普及,希望对用过HTTP但觉得不熟悉的人有所帮助,同时我也不对很多细节做太多描述,仅仅对HTTP4要素以及我们常见的传参方式进行讲解,最重要的是...

2020-02-25 00:40:28 2094

原创 还在为HttpUtils怎么写而烦恼吗?看这一篇就足够了

文章目录概述关于Http的基本标准Http的四要素四要素举例最常见的get请求普通字符串的post请求普通form表单的post请求multi-form(多表单)的post请求Http传递参数的方式不同的方法有不同的处理方式HttpUtils的设计思想HttpUtils的代码基础类真正的调用类工具类的封装总结概述作为一个java开发,自己肯定写过或者用过HttpUtils用来发送http请求吧...

2020-02-25 00:25:01 5097

原创 java:读取jar包中配置文件的几种方式

文章目录概述定义接口通过JarFile读取通过URL读取通过ClassLoader总结概述在编程的某些情况下,我们需要读取jar包中的文件,这种情况要区别于我们平时使用类加载器读取配置文件,这个时候配置在jar包中,就能读取到,但是配置文件也可以不在jar包中,只要放在Class-Path下就行了,所以这种情况下,我更愿意把它称之为:读取Class-Path下的配置文件。而我今天描述的比较明确...

2020-02-22 11:13:59 15124 5

原创 vertx中异步任务实现串行/并行执行以及回调

文章目录简述串行执行异步任务并行执行异步任务并行执行任务设计和实现并行设计并行实现并行用法串行执行任务设计和实现串设计串行实现串行测试总结简述串行执行异步任务使用vertx框架编程的过程中,经常会遇到这种情况:需要处理一组异步任务,而且我们希望它们可以按照顺序执行下去,并且当它们全部执行完了得到通知,而且有时候也需要控制,当一个执行失败,后面的任务是否需要继续执行。这个就是按照顺序去执行异步...

2020-02-21 00:15:21 4077

原创 IDEA开发java web项目:在多个git仓库,多个模块下,IDEA build,debug以及maven package等各种问题

文章目录背景基本问题背景我们最近在开发一个Java web项目,当时的设计基本是这样:将各个基础档案或者其它应用按照模块划分,基本上是一个档案对应一个git仓库(也有一个git下面有多个maven模块,这样的也有),按照职责划分开,希望将来能够按照微服务进行拆分(每个模块都会有api,domain,web层),但是暂时并不会这样做,也没有用springboot,常规的war包项目。而且设计上会...

2020-01-16 11:28:09 2961 2

原创 smartGit使用心得之:.gitignore文件生效

问题描述有的时候明明配置.gitignore文件,并且里面忽略了一些文件夹或者文件,对这些文件更新以后,但是在smartgit的更新界面就出现了,很烦人,总是以为.gitignore文件配错了。根本原因git仓库里面有那个文件夹或者文件。解决办法把你想忽略的文件以及文件夹全部删除掉,然后提交了,git仓库里面也就没有了,这个时候,你在本地增加以及更新,就再也不会出现了,完全忽略掉。...

2020-01-10 14:38:14 857

原创 两篇文章看懂EventLoopGroup,EventLoop的设计和运行机制(二)

文章目录前言EventExecutorGroup和EventExecutorEventExecutorGroup前言上一篇更多的是说结论,那结论是怎么来的呢?也是一步一步学习出来的,本文重点分享一下下面这个类图以及每个类中的实现细节:EventExecutorGroup和EventExecutor这两个接口是上述类图中的基础,也是EventLoop的基础,特别是EventExecutor...

2020-01-03 22:47:28 2849

原创 两篇文章看懂EventLoopGroup,EventLoop的设计和运行机制(一)

文章目录前言学习初衷学习核心类图的学习先上结论:EventLoop的运行机制EventExecutorGroup和EventExecutorThreadPoolExecutor的运行机制EventExecutorGroup和ThreadPoolExecutor的比较前言学习初衷今天分析的都是netty的内容,但是我自己还没有真正用netty实战过,我主要在用vert.x,一直想把vert.x...

2020-01-02 21:00:10 3228 2

原创 EventExecutorGroup和ThreadPoolExecutor的比较

文章目录前言EventExecutorGroup和EventExecutorThreadPoolExecutor的运行机制EventExecutorGroup和ThreadPoolExecutor的比较前言这是我从另外一篇分析EventLoop的文章中摘出来的,感觉比较独立。EventExecutorGroup和EventExecutor简单来说,EventExecutorGroup就是一...

2020-01-02 00:15:15 1094

原创 记录vert.x的几个BUG

vert.x本身也有一些bug,用的过程当中发现了,一定会去找到根本原因,能修复的就直接修复了,修复不了的就想办法跳过。我这边用的是3.5.2。版本有点旧了,至于新的有没有修复,我也就不去探究了,简单记录一下。注意:修复框架的代码,一定要做好注释和笔记,以应对升级框架版本的情况。HTTP请求方法不正确的时候状态码是404,应该是405发布一个接口,定义的是get,你却用post调用,ver...

2019-12-31 19:06:21 850

原创 网关、开放平台如何设计appKey,appSecret,accessToken的生成和校验机制

总述在开放平台或者网关中,经常会见到appKey,appSecret和accessToken,这是用来对openApi访问的一种授权机制。一般分为调用方应用和发布方API,发布了API以后,是用来调用的。如果想调用API的话,需要创建一个调用方应用,同时会颁发一队appKey以及appSecret,前者是公开的,这就是你的唯一身份认证的,后者是密钥,一般不会公开,后续会用于加签,而且一般情况下也...

2019-12-13 00:50:29 13997 3

原创 从Vertx的日志框架体会委派模式(Delegate)、策略模式(Strategy)和工厂模式(Factory)的结合

总述使用vertx一段时间,其实没有用过它的日志框架,都使用的是slf4j的实现logback。这几天无意中看了一下,我还以为它的日志扩展做了什么特殊处理,实际上什么都没有做,实现其实挺简单的,它把日志的所有实现全部委托给一个日志委托接口,同时自己实现了一些日志框架,比如jullog,log4j,log4j2,slf4j,目前看见实现了这4种。在运行阶段,只能选择其中一个,默认是java的日志框...

2019-12-12 21:31:48 872

原创 一文看懂Socket,backlog,连接超时,连接拒绝,读取超时

基本背景一般我们写代码,作为服务方发布服务或者请求别人的服务的时候,都可能会接触到Socket编程。当然socket实际上已经比较底层了,平时用的各种框架的话,基本上是看不到的,都已经封装好了。但是对于基本的原理,我们还是需要了解一下的。最基本的问题:套接字(socket)到底是啥?怎么理解。平时在请求服务的过程中遇到的各种连接异常,到底是什么意思。Socketsocket是TCP连接的一...

2019-11-17 19:13:33 1986

原创 Java-使用AtomicInteger和CopyOnWriteArrayList实现一个动态的无权轮询工具

基本需求有一组被轮询的数组,没有权重,都是平等的。数据可以在任何时间增加或者删除,是动态的,要保证新增加的数据可以轮询到,删除的数据轮询不到。线程安全使用的关键类CopyOnWriteArrayList线程安全的一个列表,适用于读多写少的情况(很适合轮询的场景)。AtomicInteger线程安全的计数器。具体实现,代码如下public class DynamicR...

2019-11-13 13:48:42 379

原创 Mysql,innodb使用.ibd文件快速批量恢复数据---批量快速!

总述本文以linux安装的mysql记录一次恢复数据的过程。一般情况,如果我们有一个数据库叫做testDB,里面有一张表叫testTable,那么就会在mysql的目录下创建一个叫做testDB的目录,同时在这个目录下,会生成两个文件,testTable.frm和testTable.idb。当然创建表或者增加数据还会修改其它文件,这边不强调这个。如果这两个文件保留正常的情况下,我们就可以在一...

2019-10-22 22:50:55 4671 4

原创 产品发版,有效控制代码,保证产品质量的简单看法

基本背景在产品发版前,研发人员都会经历产品测试与bug修复的一个阶段,在这个阶段里面我们会发现产品很多的bug,并且会多次更新代码;更新代码是为了解决bug,但是有缺陷的更新可能会造成更多的bug;除此之后,也有一些开发者可能会更新一些和本次发版无关的代码,本应该这些代码不应该提交的,但是如果提交了,可能会造成更多的不必要的问题。这些问题都很常见,也必须要解决。本文简单总结一下自己的经历,欢迎点...

2019-10-19 16:18:20 549

原创 拦截Spring的监听器ContextLoaderListener与DispatcherServlet,延迟加载spring组件

基本背景我们在使用SpringMVC框架的时候,一般会配置一下spring的监听器与servlet,然后引用一下依赖,就可以在代码疯狂地去使用各种注解了。最后在启动的时候,spring自己就会去加载各种东西,请求转发之类的。一般在工程中,我们都会使用各种中间件如数据库,redis等,这些配置我们一般都会提前写在配置文件里面,然后利用spring的功能进行读取和使用了。就拿数据库来说,最起码先得...

2019-09-15 17:12:09 608

原创 符号表:二叉查找树的简单学习

所有学习内容全部来自于《算法》第四版简单概述二叉查找树是符号表的一种实现。符号表,又称为字典,或者索引之类的。主要目的就是讲一个键和一个值联系起来,能够通过键增删改查等操作。符号表有二叉查找树、红黑树以及散列表的实现。基于这些算法,能够扩展出很多应该用。符号表API定义主要实现如下方法:key的话需要继承于Comparable。public interface Symbol...

2019-09-08 21:34:05 176

原创 jdbc简单学习总结

2019-08-24 23:16:21 132 1

转载 java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别

原文地址File file = new File(".\\test.txt"); System.out.println(file.getPath()); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath()); 输出实例:.\test.txt E:\works...

2019-07-16 19:42:32 505

原创 JAVA中常见的位运算

看java底层代码的时候,经常会遇到位运算,是时候简单总结一波了。

2019-07-13 15:20:56 169

原创 Java:浅析类加载过程(一)

《深入理解java虚拟机》一文中,把类加载的过程分为5步:加载、验证、准备、解析以及初始化。而第一步“加载”这个过程,虚拟机需要完成3大步骤:(1)通过一个类的全限定名来获取此类的二进制流。(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。(3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。本文重点探讨“加载”的...

2019-07-01 08:47:00 5712

原创 排序算法(归并)

归并排序基本描述归并排序是将一个数组拆分成两半分别排序,然后把两个已经排好序的结果归并起来。它有两种基本的实现,一种是自顶向下,这种需要递归,从上到下,不断拆分,把拆分的结果进行归并。另外一种是自底向上,先从最底层按照每两个元素进行归并,再分别按照4,8,16…个一层层向上归并,直到把整个数组归并。基本的归并算法归并算法就是把两个有序的数组进行归并(merge)。就是从两个数组的左边开始...

2019-06-23 17:24:49 256

原创 Linux系统安装mysql 5.7

为什么要写这个呢?虽然网上这类文章多如牛毛,但是没有一篇能让我很顺畅的安装成功。找了好几台linux都尝试了一下,按照这个方式,非常顺畅,所以记录一下。下载网站链接:https://dev.mysql.com/downloads/mysql选择版本5.7然后选择一系列选项,最后选择64位的点击下载,下载界面选择No thanks, just start my download....

2019-03-25 21:36:08 423

原创 解决Maven重复依赖问题(同一个jar,多个版本)

问题描述现在开发项目,一般都会创建maven工程,用它来管理依赖实在是方便了,当然它还有其它用途。但是在实际的情况中往往会有重复依赖的问题,比如创建的工程A,依赖了b-1.0.jar,而b-1.0.jar又依赖了d-1.0.jar(这个我们本身是不能直接看到的),同时我们自己的工程又依赖了d-2.1.jar,或者工程A依赖了c-1.0.jar,c-1.0.jar依赖了d-2.0.jar,显然,d...

2019-03-22 14:28:06 41534 3

原创 Java中synchronized基本原理与基本用法

关于synchronized的用法网上的博文实在是不能太多,但是我觉得讲得都不是特别清楚或者太复杂,因为一般情况下都是列举它的中用法,说实话,我记不住,所以查阅了相关资料,从原理上先说明,其次至于它的用法,知道原理了,用法根本不用记,举一反三。关于monitor在JVM的规范中,有这么一些话: “在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的” “为了实现监视器的排他...

2019-03-07 09:15:30 283 1

原创 多个异步请求保证执行顺序:用递归

我们在编程的过程中可能会使用到一些异步的请求,而且可能会有多个,并且前后之后可能会有某种依赖:必须前一个执行成功,后面的才去调用,否则直接失败。这种问题的解决方案就是递归。我在网上搜索的时候,搜到的都是一些js请求ajax的相关结果,借鉴了人家的思想,实现了Java代码,特地分享出来。项目背景:我使用是vertx框架,主要是解决了发布多个模块的问题。vertx框架不知道没有关系,只需要了解它...

2019-02-26 21:39:39 3368

原创 绝招!谷歌浏览器(Chrome)各种版本支持Flash

估计好多人被谷歌浏览器不支持flash的操作坑了很多次,我记得旧版本是可以在设置中的flash选项中添加信任白名单的,但是新版本是不支持这些操作的,那要怎么办呢?非常简单。如下操作:在浏览器中打开网页,比如百度吧,并且查看浏览器的左上角,如下图:然后点击,选择网站设置,如下图继续点开,选择flash,点击允许,如下图:大功告成!...

2018-12-29 17:13:35 20335 1

原创 maven打包插件:maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin详解

最近开发的产品,我们是有四五个maven模块,开发阶段一直是在eclipse中运行的,然后快发版的时候,需要把这些项目打成jar包,通过命令去启动,那首先就得把这些模块项目打包,或者拷贝一些资源文件等等。 1.maven打包,首先在pom文件中加上build属性,和dependencies是同级的:&amp;amp;lt;build&amp;amp;gt; &amp;amp;lt;!--打包出来的文件名,可以不填写,有默认值--&amp;amp;...

2018-09-05 22:45:32 19189 5

原创 windows查看操作系统的日志,主要解决了:服务无法启动,服务没有报告任何错误的问题

最近在windows注册了一个pgsql的服务,注册完了之后,采用下述方式启动net start pgsql命令行一直就显示:pgsql 服务正在启动pgsql 服务无法启动服务没有报告任何错误然后就觉得很郁闷,也不知道为什么,最后在网上查到了一个查看windows日志的方法,如下,能够看到启动服务报的错。右键”我的电脑”—“管理” 计算机管理—系统工具—事件查看器...

2018-09-05 21:17:26 16352

原创 Windows下在命令行安装postgresql,并注册成window服务;产品内置postgre

Windows下免安装postgresql,并注册成服务最近做的一些产品,需要内置postgre数据库,肯定是希望到时候一键启动,直接注册成服务,不需要用户再去安装,所以倒腾了半天,网上找了很多资料,但是感觉都不是很全面,现在记录一下。下载postgre包 下载地址:https://www.postgresql.org/download/ 如下图进行下载 postgre...

2018-09-05 08:49:39 22805 8

空空如也

空空如也

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

TA关注的人

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