自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

haoxiaoyong1014的博客

天生我才必有用

  • 博客(63)
  • 论坛 (1)

原创 SpringBoot 使用 Redis Geo 实现查找附近的位置-附近的人功能

SpringBoot 使用 Redis Geo 实现查找附近的位置6个操作命令Redis 命令描述GEOADD增加某个地理位置的坐标GEOPOS获取某个地理位置的坐标GEODIST获取两个地理位置的距离GEORADIUS根据给定地理位置坐标获取指定范围内的地理位置集合GEORADIUSBYMEMBERl根据给定地理位置获取指定范围内的地理位置集合GEOHASH获取某个地理位置的 geohash 值GEOADD该命令格式:geoadd

2020-09-20 14:22:46 69

原创 ELK安装时错误记录

ELK安装时错误记录错误1:error='Cannot allocate memory' (errno=12)解决方法:由于elasticsearch默认分配jvm空间大小为2g,需要改小一点vim config/jvm.options -Xms2g → -Xms512m-Xmx2g → -Xmx512m错误2:can not run elasticsearch as root解决方法:在 Linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要

2020-09-10 15:07:59 25

原创 ELK日志分析系统搭建以及集成SpringBoot日志收集

ELK安装步骤简单介绍ElasticSearch:用于存储日志信息。Logstash:用于收集、处理和转发日志信息。Kibana:提供可搜索的Web可视化界面。准备工作安装JDKElasticsearch7 自带jdk11,如果没有安装jdk, es7使用缺省jdk11如果已安装,使用已安装的jdk,低于11有警告,但不影响使用。但是在安装Logstash还是需要java环境,所以建议还是安装一下jdk11安装jdk过程省略安装Elasticsearch#下载elastic

2020-09-10 15:06:21 47

原创 关于使用this.getClass().getResource()获取文件时遇到的坑

最近在工作中遇到需要读取配置文件,然后第一想法就是将文件放到项目的resources目录下,然后使用:String fileName = "config/zh.md"String path = this.getClass().getResource("/").getPath() + fileName;System.out.println(path);// D:/example/exam01/target/classes/config/zh.md在IDE工具中开发及Debug时一切都正常,但是打

2020-07-19 22:09:20 463

原创 springboot集成第三方swagger-bootstrap-ui美化文档样式

springboot-swagger-enhance此 demo 主要演示如何集成第三方的 swagger 来替换原生的 swagger,美化文档样式。本 demo 使用swagger-bootstrap-ui启动项目,访问地址 http://host:{host}:host:{port}/doc.htmlUI增强同时,swagger-bootstrap-ui在满足以上功能的同时,还提供了文档的增强功能,这些功能是官方swagger-ui所没有的,每一个增强的功能都是贴合实际,考虑到开发者的实际开发

2020-05-14 17:34:43 890

原创 SpringBoot自定义Starter 并制作一个简单的图床

SpringBoot自定义starter 并制作一个简单的图床上篇博客中讲述了从SpringBoot源码到自己封装一个Starter,而并没有写一个真正的业务场景,这篇博客将自定义starter 添加第三方组件(阿里云OSS);并根据自定义的starter制作一个图床;项目结构:oss-spring-boot-project│ README.md│ pom.xml └───...

2020-04-01 23:01:46 108

原创 从SpringBoot源码到自己封装一个Starter

这篇博客主要讲述一下springboot怎么给我们简化了大量的配置,然后跟着源码自己封装一个Starter,首先我们需要从两个地方来说,第一就是springboot的起步依赖,第二就是springboot自动装配;起步依赖我们在创建一个springboot工程时需要引入spring-boot-starter-web这个依赖;<dependency> <groupId...

2020-03-20 18:09:07 844

原创 谈谈美股熔断和服务熔断Hystrix

首先说一下最近比较火热的美股熔断,美股熔断究竟是什么意思?先看看维基百科:熔断机制(英语:Circuit breaker / Trading curb)指的是在股票市场的交易时间中,当价格波动的幅度达到某一个限定的目标(熔断点)时,对其暂停交易一段时间的机制。此机制如同保险丝在电流过大时候熔断比较相似,故而得名。熔断机制推出的目的是为了防范,给市场更多的冷静时间,避免恐慌情绪蔓延导致市场波动...

2020-03-17 21:04:21 375

原创 别人那没有的工具类

检查一个对象中的参数值是否为空public class ValidUtils { public static <T> JSONObject inspect(T t, String requireParams) { JSONObject jsonResult = new JSONObject(); jsonResult.put("code", ...

2020-03-06 18:15:53 94

原创 springboot整合分布式任务调度xxl-job

此 demo 主要演示了 Spring Boot 如何集成 XXL-JOB 实现分布式定时任务,并提供绕过 xxl-job-admin 对定时任务的管理的方法,包括定时任务列表,触发器列表,新增定时任务,删除定时任务,停止定时任务,启动定时任务,修改定时任务,手动触发定时任务。xxl-job-admin调度中心克隆 调度中心代码$ git clone https://github.c...

2020-01-13 09:33:46 785

原创 一道java JDK面试题引发的思考

这道面试题所设计的知识点:传值和传引用的区别装箱和拆箱java的内存模型反射面试题需求:主方法定义两个Integer变量,并赋值,然后通过一个swap()方法交换变量的值,请写出swap()中的实现public static void main(String[] args) { Integer a = 1; Integer b = 2; System.ou...

2019-12-23 17:33:33 99

原创 深入学习JVM(一) -- 理解java虚拟机内存模型

深入理解java虚拟机内存模型JVM 整体架构简单回顾例如我们写了一个简单的HelloWorld程序,我们想让他运行起来,首先需要javac命令,把他编译成字节码文件,然后通过java命令放到java虚拟机里面去运行,这里如果我们将代码放到windows系统运行或者放到Linux系统下去运行,其实底层执行的是机器码(0101010),不同的操作系统底层的机器码不同,例如我们将代码放到wind...

2019-11-12 14:55:47 62

原创 基于Netty Spring Boot仿微信聊天项目

基于Netty仿微信聊天项目功能需求登录/注册个人信息通讯录搜索好友添加好友好友聊天技术架构–后端开发工具:IDEA框架:Spring Boot、MyBatis、Spring MVC、FastDFS、Netty数据库:mysql后端项目地址: https://github.com/haoxiaoyong1014/chat-software技术架构–前端...

2019-10-15 10:43:26 1839 4

原创 EhcacheCache和Redis做mybatis二级缓存对比

源码:使用EhcacheCache做二级缓存使用redis做二级缓存我们都知道无论是使用redis做二级缓存,还是使用EhchcheCache做二级缓存,都需要去实现Cache接口,并实现其中的方法;使用EhchcheChche做二级缓存mybatis帮我们实现了,我们只需要引入相应的maven 依赖(坐标)即可;而使用Redis做二级缓存我们需要自己去实现Cache接口;Cache接口中...

2019-09-15 15:37:53 281

原创 使用redis做mybatis的二级缓存

使用redis做mybatis的二级缓存application.properties在application.properties文件中配置Redis,Mybatis,开启Mybatis二级缓存等server.port=8084spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&charact...

2019-09-14 17:51:43 522

原创 AOP+自定义注解+策略模式 记录操作日志,避免过多的if else

演示案例代码首先看下业务需求:如图所示,就是将用户的操作行为记录到日志表中,而且有些内容是动态的,如图是六种操作,但是后期肯定是要增加的,也就是说就这六种需要记录到日志表中,日志表所对应的对象是AnalysisMessage,标题,内存,接收时间,对应对象中字段名为title,content,create_time;看到需求的第一眼就想到AOP来实现;但是只是使用AOP的会写一些if els...

2019-09-08 17:51:50 202

原创 Netty 解决粘包拆包

While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length...

2019-05-29 15:19:42 501

原创 SpringBoot整合Netty并使用Protobuf进行数据传输

我只是给代码注入灵魂;官方地址: https://github.com/google/protobuf高效的编码方式 Google Protocol我们在编写网络应用程序的时候需要注意codec(编解码器),因为数据在网络中传输的都是二进制字节码数据,而我们拿到的目标数据往往不是字节码数据,因此在发送数据时就需要编码,收到数据时需要解码codec 的组成部分有两个:decoder(解码器...

2019-05-27 23:40:15 1288 2

原创 基于Netty手写 RPC

手写RPC整体分析RPC(Remote Procedure Call),即远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络实现的技术。常见的RPC 框架有: 源自阿里的Dubbo,Spring 旗下的Spring Cloud,Google 出品的grpc 等等。将上面的12个步骤整理为下面9个步骤:1,服务消费方(Client)以本地调用方式调用服务2...

2019-05-27 19:42:35 277 1

原创 java 优化过多的 if else 策略模式

在编码中经常会遇到过多的 if else ,就会显得代码很臃肿,分支比较多,这种情况肯定是不建议用if-else的,维护起来不是很方便,而且容易出现 bug,下面看下如何解决满屏的 if else;我项目中的场景: 我们有一个需求是实名认证,但是实名认证有很多种方式,例如: 人脸识别,实名认证四要素(姓名,身份证,手机号,银行卡,主要针对企业),实名认证三要素(姓名,身份证,手机号), 实名认证...

2019-04-15 10:49:11 4781 1

原创 MySQL数据库备份&还原-shell脚本

手动备份使用mysqldump:备份一个数据库mysqldump -hhostname -uusername -pmypwd databasename > /path to backup/bakname.sql备份并压缩mysqldump -hhostname -uusername -pmypwd databasename | gzip > /path to bac...

2019-03-25 15:17:16 1428

原创 Netty结合webSocket做聊天案例

Netty的介绍就不在这里阐述了,前面也写过关于Netty的文章:Netty(一) springboot整合Netty做心跳检测Netty(二) springboot 整合netty编写时间服务器Netty(三) Netty 之传输文件这里不做过多的介绍,代码有响应的注释,首先添加依赖: <dependency> <groupId>io...

2019-03-16 16:26:07 482 1

原创 Spring Spring Boot 实战,- 全局异常处理

异常处理当我们开发过程中或者说一个web程序在运行中,由于用户操作不当,或者说程序中存在的bug,有大量的异常需要处理,有些异常要告知开发人员,有些异常要提示用户,在很久之前我们处理全局异常通常都定义一个异常基类,然后每个Controller去继承这个异常基类,虽然这种方式可以解决问题,但是极其不灵活,因为动用了继承机制就只为获取一个默认的方法,这显然是不好的。在探寻spring的异常处理机...

2019-03-11 20:20:23 102

原创 重新认识RabbitMQ【全】

rabbitmq-stu个人认为学习一个技术需要系统的学习,同时学习完之后记得回顾,不然太容易忘记,这个案例同时也是我的学习笔记,其中包括:Work queues 工作模式publish/subscribe工作模式 (又称发布订阅模式)Routing工作模式topics工作模式(通配符模式)在rabbitmq-stu有四个子模块:整合 rabbitmq-springboot...

2019-01-27 13:41:40 219

原创 redis可视化管理后台

Redis的后台管理最终展示效果图环境springboot 2.0.1.RELEASEredis Lettuce版本前端 Vue.js目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce。因为我们的版本是springboot2.x系...

2018-11-16 17:41:59 1549

原创 (Netty三) Netty 之传输文件

Netty 文件传输在之前的项目中介绍了springboot整合 netty做心跳检测springboot 整合netty编写时间服务器这次通过 Netty 传递文件此项目地址:   https://github.com/haoxiaoyong1014/netty-file项目依赖 <dependency> <groupId>io.netty</...

2018-11-15 17:07:33 7217 1

原创 springboot2整合Quartz持久化定时任务管理界面

此案例在天降风云博主的基础上进行了补充Quartz提供两种基本作业存储类型。第一种类型叫做RAMJobStore,第二种类型叫做JDBC作业存储。在默认情况下Quartz将任务调度的运行信息保存在内存中,这种方法提供了最佳的性能,因为内存中数据访问最快。不足之处是缺乏数据的持久性,当程序路途停止或系统崩溃时,所有运行的信息都会丢失比如我们希望安排一个执行100次的任务,如果执行到50次时系...

2018-10-24 09:50:19 13980 28

原创 Netty(二) springboot 整合netty编写时间服务器

这个例子与上个例子( springboot 整合netty做心跳检测)最大的不同就是,服务端发送包含32位整数的消息,而不接收任何请求,并在发送消息后关闭连接。因为我们将忽略任何接收到的数据,一旦建立连接就发送消息,这次我们不能使用channelRead()方法。 相反,我们应该重写channelActive()方法。项目依赖:<dependency> <group...

2018-10-22 10:41:04 691

原创 Netty(一) springboot整合Netty做心跳检测

Netty介绍Netty是一个NIO客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化并简化了TCP和UDP套接字服务器等网络编程。“快速简便”并不意味着最终的应用程序会受到可维护性或性能问题的影响。Netty经过精心设计,具有丰富的协议,如FTP,SMTP,HTTP以及各种二进制和基于文本的传统协议。因此,Netty成功地找到了一种在不妥协的情况下实现易于开...

2018-10-19 11:13:16 5425 5

原创 mac 安装 solr

mac 安装 solr在终端输入: brew install solr就直接安装了,但是不巧的是我的 mac 上没有安装 Homebrew 所以这个命令就不能使用接下来就 安装Homebrew安装Homebrew其实也非常的简单 打开终端,输入以下命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Ho...

2018-09-14 15:35:59 1891

原创 Vue 自定义富文本编辑器 tinymce 支持导入 word 模板

自定义富文本编辑器分为前端项目和后端项目两个部分,首先先说一下前端项目前端前端项目地址: https://github.com/haoxiaoyong1014/editor-ui编辑器名称: tinymce前端采用的 vue.js至于Vue 中怎么集成 tinymce 编辑器参考: https://segmentfault.com/a/1190000012791569其中关...

2018-09-13 10:03:10 16336 19

原创 根据 redis 实现商品排行榜

前言 排行榜作为互联网应用中几乎必不可少的一个元素,其能够勾起人类自身对比的欲望,从而来增加商品的销量。排行榜的实现方式基本大同小异,大部分都基于 Redis 的有序集合 sorted set 来实现。本文通过了商品销售排行榜这一模型,来进行演示,同时您还可以根据本文章实现 文章的点赞排行, 积分排行等.. 项目Github地址:https://github.com/haoxiaoyong...

2018-08-09 11:20:14 6768

转载 看完让你彻底搞懂Websocket原理

看完让你彻底搞懂Websocket原理本文为转载,尊重原作者的著作版权。偶然在知乎上看到一篇回帖,瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有。所以转到我博客里,分享一下。比较喜欢看这种博客,读起来很轻松,不枯燥,没有布道师的阵仗,纯粹为分享。废话这么多了,最后再赞一个~一、websocket与httpWebSocket是HTML5出的东西...

2018-07-16 20:04:08 134

原创 使用itext5 验证PDF文件中的签名证书有效性-验签

实例代码地址:https://github.com/haoxiaoyong1014/testarea-itext5验证签名模块代码位置: testarea-itext5/src/test/java/mkl/testarea/itext5/signature/VerifySignature.java一,实际需求: 用户上传带有签署证书的pdf文件,我们进行验证证书的真实性,有效性以...

2018-07-01 01:55:27 9846 6

原创 springboot2整合OAuth2.0认证实例

springboot2整合OAuth2.0实例 代码实例放到:https://github.com/haoxiaoyong1014/springboot-examples springboot-oauth2 包括: springboot-oauth2-authorization-server(认证服务)和springboot-oauth2-resource-server(资源服务) ...

2018-06-24 22:48:48 22515 21

原创 Dubbo-admin管理平台和Zookeeper注册中心的搭建

概述 zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其作为研发Hadoop时的副产品。由于分布式系统中一致性处理较为困难,其他的分布式系统没有必要 费劲重复造轮子,故随后的分布式系统中大量应用了zookeeper,以至于zookeeper成为了各种分布式系统的基础组件,其地位之重要,可想而知。著名的hadoop,kafka,dubbo 都是基于zookeep...

2018-05-20 20:15:20 812

原创 Git 创建合并切换分支,回退版本,撤销修改,解决冲突,多人开发协作

好东西就要分享一下

2018-05-12 15:20:16 890 1

原创 docker下的 redis 之持久化存储

本章节开始 我们在docker下 进行 spring Boot项目操作redis 准备工作: (1) 创建文件夹:usr/local/work/share (2) 拉取项目,这是一个打包好的jar 包 (3) 将拉取的 jar包放到刚刚创建的文件夹下,同时再创建一个名字为 docker-compose.yml的文件 (4) 在 tmp目录中创建...

2018-05-08 16:26:05 9400

原创 Spring Security OAuth2.0实现单点登录SSO

基于Spring Security OAuth2.0实现单点登录SSO 完整的代码下载链接 https://github.com/haoxiaoyong1014/spring-security-sso简单的单点登录Spring Security OAuth21.概述 在本教程中,我们将讨论如何使用Spring Security OAuth和Spring Boot实现单点登录 - 单点登...

2018-04-27 14:25:26 4661

原创 使用 maven插件构建 Docker镜像

* 1.使用 maven插件构建 Docker镜像* 插件名称:docker-maven-plugin 官方网址:https://github.com/spotify/docker-maven-plugin2.准备工作 从 GitHub 中拉去demo : https://github.com/haoxiaoyong1014/docker-compose-demo ...

2018-04-27 10:41:02 713

空空如也

spring Boot 接收from表单传过来的集合

发表于 2017-09-21 最后回复 2017-09-27

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