自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小哥哥的博客

一介俗人,贪恋技术

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

原创 Elasticsearch集群迁移

前言  最近一大段时间,跟ES杠上了,先是从5.x版本迁移到7.3.2,又从7.3.2迁移到7.3.2,真是把我折磨的够呛。在此记录一下相关工作,对其他需要迁移ES的人提供一些经验吧。一、版本之灾  说起ES的版本,真的是深恶痛绝!恨不得打一顿设计ES代码的人。之前只是简单的学习了一下ES 7.x查询相关的API,并没有深入研究ES,所以对于迁移还是有点懵的。ES集群维护方浪潮提供了跨大版本迁移的示例代码,但是需要迁移两次,即从5.x迁移到6.x,再从6.x迁移到7.x。这简直就是浪费时间,浪费生命啊

2020-11-04 13:58:42 1011 11

原创 springboot结合druid使用多数据源,动态切换

前言有时候为了减少数据库的压力,就要实现数据库的读写分离,这种情况往往是读多写少的情况,例如电商平台。既然数据库读写分离了,那么代码层也就需要读写不同的数据库了。实现方法应该有不少,我知道有插件实现,判断写请求还是读请求来请求不同的数据库,还有代码实现,不同的SQL访问不同的数据源,也就是接下来要说的多数据源。一、基础介绍代码层多数据源的实现方法也有很多,例如不同的包拥有不同的数据源、...

2019-06-10 14:39:48 16089 24

原创 SpringBoot使用银联支付

前言项目里使用了微信支付,支付宝支付。但是还不满足!我们还需要银联支付!!那就去看看呗。https://open.unionpay.com/tjweb/api/list?bussId=52,这是银联的开放平台,看了一会,觉得在线网关支付符合要求,虽然看不懂这个名词。先把他的sdk和demo下载下来,下完我就懵逼了。demo竟然是用jsp和servlet写的,这和微信支付和支付宝支付比起来有...

2018-11-30 17:25:53 5871 39

原创 微信支付的那些让人又恨又痛的坑

前言项目里要用微信支付,然后就开始研究怎么做呗,经历了一段时间,踩了一堆的坑,终于可以正常的支付了。刚开始网页扫码支付,然后又是APP支付,小程序支付,需要的参数还不一样,参数一样了,参数名称不一样。所以,记录一下吧。微信支付是需要证书的,这个得去商户平台获取吧,应该会有人给,windows需要安装,linux不需要安装的。项目环境:springboot 1.5.10一、微信支付J...

2018-11-30 15:23:46 2219

原创 CentOS安装Elasticsearch集群

CentOS安装ES集群

2023-09-05 11:41:06 788

原创 java使用smiley-http-proxy-servlet实现反向代理,跳过SSL认证

nginx可以实现反向代理,但是有时候需要使用java代码来实现,经过摸索,发现有开源的项目可以实现,所以简单记录一下如何使用。

2023-09-05 10:09:38 1342 2

原创 基于hutool工具类返回树状列表

树状结构好构造,就是计算数据量有点绕,绕来绕去就晕了。

2023-07-20 16:02:20 503 1

原创 【CentOS安装软件系列】Centos7安装Mysql8

公司的系统都是内网部署的,mysql也需要自己在内网部署,虽然使用docker安装很方便,但是有一定的风险。所以简单记录一下怎么安装mysql,以备不时之需。

2023-06-09 13:21:28 769

原创 【SpringCloud系列】开发环境下重写Loadbalancer实现自定义负载均衡

spring-cloud-starter-netflix-ribbon已经不再更新了,最新版本是2.2.10.RELEASE,最后更新时间是2021年11月18日,详细信息可以看maven官方仓库:https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-starter-netflix-ribbon,SpringCloud官方推荐使用spring-cloud-starter-loadbalancer进行负载均衡。我们在开

2023-04-12 18:05:36 5919 6

原创 Maven配置多个仓库示例

可以把三种配置写成三个配置文件放在maven的conf目录下,在idea中不同的项目选择不同的配置文件,完美解决问题!!!

2023-04-11 09:53:40 1163

原创 Mybatis-plus批量操作

使用Mybatis-plus可以很方便的实现批量新增和批量修改,不仅比自己写foreach遍历方便很多,而且性能也更加优秀。但是Mybatis-plus官方提供的批量修改和批量新增都是根据id来修改的,有时候我们需求其他字段,所以就需要我们自己修改一下

2022-08-19 15:18:27 37984 10

原创 Neo4j的安装和基本使用

前言公司项目中需要展示多个主体之间的关系,直接查询数据库比较复杂。进过调研,发现图数据库可以满足需求。图数据库有很多种,比如百度的HugeGraph,Neo4j,本文先简单说一下一下Neo4j。一、安装使用dicker安装neo4j,简单又迅速。1、拉取镜像docker pull neo4j:4.2.12、启动容器docker run -d --name=neo4j --publish=7474:7474 --publish=7687:7687 -v $HOME/neo4j/da

2021-03-24 09:32:59 313

原创 【SpringCloud系列】OpenFeign调用鉴权及解决由于多线程调用OpenFeign导致的request请求数据丢失的问题

前言SpringCloud微服务之间调用一般使用OpenFeign,认证鉴权一般是通过添加特定的请求头。那么OpenFeign请求其他微服务的时候也要携带特定的请求头,这时候就需要一个拦截器,统一添加请求头。一、请求拦截最简单的方案就是实现feign.RequestInterceptor接口。这样使用OpenFeign请求其他微服务接口的时候就会携带请求头,保证认证通过。@Slf4j@Configurationpublic class CustomFeignRequestInterce

2021-03-02 09:34:24 3992

原创 SpringBoot简单的全局异常处理和登录拦截

前言敲代码的时候会遇到各种各样的异常,有业务异常,有代码异常,如果都用try-catch处理,那真的是要了命了。所以,我们就想个办法来全局处理异常。下面就是一个简单的思路,实际应用的时候可以基于此优化。一、定义统一返回数据为了和前端交流更加方便,定义一个类用来返回前端。@Datapublic class Result<T> implements Serializable { /** * 错误码 */ private Integer cod

2021-02-24 17:12:30 579

原创 监听Redis缓存key过期

前言有些业务需要延迟一定时间后执行,比如订单提交后15分钟未支付就自动关闭,这里只是举个例子。我们可以通过监听redis的key过期事件来实现这个功能。一、添加依赖添加redis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></

2021-02-23 11:41:56 647 1

原创 Windows安装Elasticsearch

前言进入现在的公司前接触过ES,然后开始自学,但是没有实际应用过。来到这个公司不到半年就让我迁移ES集群,真的是一大挑战,相关经验可以查看我另一篇文章Elasticsearch集群迁移。下面就简单讲一下windows安装ES,本地能测试使用即可,linux安装有点复杂,集群环境有专门的运维负责。一、下载elasticsearch和相关插件1、elasticsearch下载地址:https://www.elastic.co/cn/downloads/past-releases#elastics

2021-01-27 11:57:37 678

原创 【docker系列】docker安装yapi

前言YApi是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台,使用起来还是很方便的,简单讲一下docker安装YApi一、docker安装地址:https://gitee.com/fjc0k/docker-YApi1、拉取镜像docker pull jayfong/yapi:play2、定义环境变量文件vim [email protected]_ADMIN_PASSWORD=123456

2021-01-19 11:52:17 686

原创 【CentOS安装软件系列】CentOS7.2安装node12

前言我们项目的服务器是内网的,所以安装软件就需要离线安装,这里讲一下怎么离线安装node一、下载官方安装包并拷贝到离线机器上。官方下载地址:https://nodejs.org/en/download/二、解压文件:tar-xJf node-v12.19.0-linux-x64.tar.xz三、放到相应目录例如/usr/local/software/nodesudo mvnode-v12.19.0-linux-x64/usr/local/software/node...

2021-01-19 11:38:29 613

原创 【docker系列】docker安装mongodb

前言docker安装软件确实是简单方便,不想用了,直接删除容器。本篇文章就讲一下怎么安装mongodb一、开始安装mongodb1、拉取镜像docker pull mongo2、启动容器docker run -p 27017:27017 -v /data/mongo:/data/db --nameyapi-mongo -d mongo--authdocker run -p 27017:27017 -v /data/mongo:/data/db-e MONGO_INITDB_...

2021-01-19 11:24:25 214

原创 【docker系列】二、docker基本命令

前言这些是我在使用docker时整理的一些常见的命令,可能不太详细一、镜像相关1.1列出拉取的所有镜像docker images1.2删除镜像,容器要先停止docker rmi 镜像id1.3 save命令导出docker save -o nginx.tar nginx:latest或docker savenginx:latest > nginx.tar其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:..

2021-01-19 09:35:02 185 1

原创 【docker系列】一、Centos 7.2安装docker和docker-compose

前言自从知道了docker之后,一般本地环境要测试某个东西,都会直接找一下能不能docker安装,不得不说,是真的方便。一、在线安装docker1、安装底层工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2这是我们安装Docker的底层工具,它就会自动的给我们提示下载,很快下载就完成了。2、加入阿里云仓库提速下载过程sudo yum-config-manager --add-repo http://

2021-01-19 09:27:44 491

原创 java使用itext7实现html转pdf

前言最近项目里有个功能是要把前端展示的内容给导出pdf。经过一段时间的调研和尝试,最终选择了itext7来实现。网上有很多关于itext5的博客或者文档,但是关于itext7还挺少的。首先介绍一下大体流程吧,项目是基于springboot 和vue 的前后端分离架构,基本思路是由前端生成html文件,传给后端,后端通过itext7转为pdf返回前端。废话少说,直接上代码!一、前端处理html由于不是我写的代码,这里只能给出参考:https://segmentfault.com/a/11900

2021-01-18 17:26:30 10311 43

原创 SpringCloud OpenFeign使用OkHttp,添加响应拦截器

前言SpringCloud微服务之间的请求一般使用OpenFeign,有时候我们需要在请求或者响应的时候做一些额外的操作。比如请求的时候添加请求头,响应的时候判断token是否过期等等。这时候拦截器就派上用场了!我们接下来就说一下怎么添加请求和响应拦截器。一、修改OpenFeign的http客户端OpenFeign默认的http客户端是javax.net.ssl.HttpsURLConnection,详细信息见feign-core:feign.Client,该http客户端不支持添加拦截器和连接

2020-12-21 15:56:52 7055

原创 SpringBoot加载自定义配置文件

SpringBoot加载自定义配置文件前言一、配置文件二、配置pom文件2.1 配置 profiles2.2 配置resources三、加载自定义配置文件写在最后的话前言SpringBoot的配置文件是application.properties或者application.yml。我们还可以根据spring.profiles.active配置项添加application-dev.properties或者application-prod.properties。这样,SpringBoot启动的时候就会自动添

2020-08-24 10:14:26 2532

原创 java程序员如何使用CDN的方式写Vue

前言虽然现在前后端分离已成大趋势,java后端就不用写页面了,但是偶尔自己写个小项目也是需要自己写前端页面的。不分离的时候页面写在templates或者static文件夹下,使用npm的方式就显得有点麻烦了,那么我们就用CDN引入的方式来写。Vue官网推荐新手使用CDN的方式学习Vue。项目结构如下图一、CDN引入在index.html页面引入Vue相关的js和css,请求后台接口使用axios,UI我们使用饿了么的element-ui。<script src="https:

2020-06-28 14:06:10 3996

原创 【CentOS安装软件系列】CentOS7.2安装jdk1.8

前言centos7.2安装jdk网上也有很多的教程,自己实际安装成功了一次,记录一下一、下载下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载需要登录账号,自己注册一个就可以。二、安装在服务器新建文件夹 mkdir /usr/local/java,上传压缩包,解压即可。三、配置环境变量编辑环境变量 vim /etc/profile在最后添加以下内容ex

2020-06-28 09:50:29 358

原创 几款好用的Eclipse插件

前言几款好用的Eclipse插件一、Enhanced Class Decompilerjava反编译插件,可以查看jar包里的源码二、Spark Builder Generatorjava建造者模式生成器,可以一键生成建造者模式的代码三、Alibaba Cloud Toolkit上传代码到阿里云,省很多事。四、Thymeleaf Plugin for E...

2019-10-11 13:57:05 893

原创 RabbitMQ的安装以及使用

前言MQ,消息队列,排队处理消息。以下为如何离线安装rabbitMQ一、Linux安装rabbitMQ1、前提(1)mq以及erlang下载地址:https://www.rabbitmq.com/install-rpm.html#downloads,有四个,选择第一个即可。我这里选择的是3.6.6版本。(2)rabbitMQ是用erlang语言写的,需要先安装erlang...

2019-09-23 11:34:36 192

原创 SpringBoot+Redis+RabbitMQ 实现订单秒杀

前言电商平台有时候会搞一些秒杀活动,秒杀活动的并发量特别高,会导致访问变慢、商品超卖等问题。所以,写一篇博客记录一下主要实现思路,解决一些小问题。一、建表就简单的建一张表,秒杀活动表。然后就可以写代码,通过页面添加秒杀活动了,这里就不写这些了。CREATE TABLE `seckill_promotion_table` ( `id` int(11) NOT NULL AUTO...

2019-09-17 16:50:00 3843 2

原创 根据不同时间范围(今天,昨天,本周,上周)查询的SQL语句

前言有时候,我们需要根据不同的时间范围来查询数据。例如查询今天的,昨天的,本周的,上个月的等等。仅此记录一下。sql语句只写where条件,其中 operate_time 是数据库里和时间有关的一个字段,类型为datetime。主要使用的是SQL语句和时间有关函数,可以查看此链接学习:https://www.yiibai.com/sql/sql-date-functions.html...

2019-08-07 11:34:27 1858 2

原创 Springmvc 下载文件

前言有时候项目里需要下载文件的功能,但是一时之间不知道从何下手,故此记录。一、使用HttpServletResponse最简单方便的便是使用HttpServletResponse,设置一下请求头,获取到输出流。 public static void download(HttpServletRequest request, HttpServletResponse response)...

2019-08-05 10:03:24 369

原创 (一)springboot结合websocket之使用STOMP协议推送消息

前言有时候前端需要实时的获取后端的信息,比如订单的消息,发货之类的通知,实时的服务器信息,股票信息等。有一种方法是ajax轮训,就是间隔一段时间查询服务器一次,但是这种方式对服务器不太友好。所以,还有另一种方法,websocket。一、引入websocketpom文件引入依赖<dependency> <groupId>org.springframe...

2019-07-17 17:14:06 2109

原创 【造个轮子系列】之springboot使用AOP打印请求日志

前言在开发项目的时候,想知道请求的各种参数,需要自己去logger打印,但是我总觉得的有点麻烦。所以我就使用AOP写了一个starter,来打印一些请求参数,方便开发时查看请求参数以及其他内容。一、配置类首先写个配置类,主要是方便日志打印的开启与关闭@ConfigurationProperties(prefix="spring.request.logging")public c...

2019-06-10 16:28:11 268

原创 【造个轮子系列】之springboot自定义异常+全局异常处理

前言公司开发模式为前后端分离,为了统一返给前端的数据,所以我们就自定义异常,并且全局处理这些异常。然后我以此为基础写了一个springboot的starter,又添加了一些其他功能,在此作为记录。一、自定义异常首先,为了统一返回数据,就要写个类封装一下返回的数据,正确的时候把数据放进去,错误的时候就要返回错误信息,为了方便管理,我们就需要把这些错误信息放进枚举里。但是我们是要造个轮子,...

2019-06-10 16:12:35 981

原创 springboot使用validator进行参数校验

前言公司项目是前后端分离的,为了保证前端传输数据的合法性,对参数进行校验就很有必要。hibernate-validator就是一个不错的参数校验的解决方法。spring-boot-starter-web包里面有hibernate-validator的包,所以不需要引用hibernate validator依赖,直接就可以用。一、配置validatorValidator是javax包下的...

2019-05-31 11:04:40 5671 4

原创 Mybatis注解开发之批量添加和批量更新

前言大部分使用mybatis的开发者都是用xml配置文件来操作数据库。但是我们公司使用的是注解开发,xml文件方式官方有批量操作文档,但是注解方式官方没有提供任何批量操作的文档。所以,网上找了一下,然后自己试了试,记录一下。一、实体类先照着数据库写一个实体类吧public class ChatRecordDO implements Serializable { private...

2019-05-23 17:52:16 8432

原创 【造个轮子系列】之自定义验证码的 springboot starter

前言springboot很好用的原因之一就是它本身封装了好多starter,拿来就可以用,不用像SSM那样配置好多。所以,我们也可以自定义一个starter,造个小轮子,自己用。我就以验证码为例子。一、工厂模式验证码的样式多种多样,有静态的PNG格式的,有动态的GIF格式的。还有它的高度、宽度,字符串的长度也都可以改变。所以我们可以使用java设计模式中的工厂模式来生成不同的验证码。...

2019-05-20 17:44:16 1182

原创 (一)office文档操作之excel表格模板填充数据导出

前言java操作excel表格可以使用POI,但是我觉得这些太麻烦了。如果说我想实现合并单元格等操作,可能会更加麻烦。所以我就找到了Xdoc这个第三方API。一、XDOCXdoc官网:http://www.xdocin.com/index.html,具体的使用方法可以自己看看,我就不赘述了。一、excel模板在xdoc官网的最下方有一个关于excel的模板,可以下载模板、填充数...

2019-02-27 16:37:14 705

原创 Layui之表格单元格合并

前言layui是一个不错的后台UI框架,最近一直在学习。但是它原来的表格不支持单元格合并。比如项目这一列,有相同的行,我们就需要合并一下。就像是这样:一、实现我们需要在表格实例化之后再对其样式进行修改,因此我们需要写个函数,在表格render后的done函数里调用。/** * name layuiRowspan * @param fieldName 要合并列的...

2019-02-27 16:01:09 11626 7

原创 (一)JDK 1.8 Stream 流之lambda表达式的使用

前言java 8 新出了一个功能就是stream流,乍一听还以为和输入流输出流有关系。其实吧,这两者基本没啥关系。stream主要是用来操作集合和数组的。但是,要搞明白这个之前,要先要下面这个图是从别处拿来的,也可以看看这篇博客:https://www.cnblogs.com/andywithu/p/7404101.html。stream流操作大量使用了lambda表达式,所以开始学习...

2019-02-13 11:19:57 911

空空如也

空空如也

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

TA关注的人

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