- 博客(74)
- 资源 (17)
- 收藏
- 关注
原创 CountDownLatch与CyclicBarrier和Semaphore
CountDownLatch的例子:public static void main(String[] args) { CountDownLatch countDownLatch = new CountDownLatch(6); for (int i = 0; i < 7; i++) { new Thread(()->{ System.out.println(Thread.currentThread().
2022-05-16 22:01:22
253
原创 JVM垃圾回收
1 概述 要了解JVM垃圾回收是什么,首先我们应该先认识一下JVM是什么。本篇就来带大家一起揭开JVM神秘面纱。在了解JVM后面我们继续探讨垃圾回收器以及对应的垃圾回收算法。2 JVM组成 JVM是Java Virtual Machine(Java虚拟机)的缩写。有时我们也叫它运行时数据区,为方便程序运行和管理细分为多个不同的区域,配合完成java代码的执行。它们用途各异,创建销毁也不同,有的随虚拟机器进程的启动而生,随虚拟机进程的关闭而消亡,有的依赖我们创建的线程开启和结束...
2022-05-05 16:23:15
311
4
转载 正则表达式
一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$9 有两位小数的正实数:^...
2021-09-03 16:50:08
266
原创 Swagger友好UI工具之Knife4j
Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍! Knife4j的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j项目模块目前主要的模块包括: ...
2021-09-03 13:55:51
1717
原创 Java 实体映射工具 MapStruct
官网地址:https://mapstruct.org/documentation/stable/reference/html/1 DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。2 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输
2021-08-31 09:29:44
287
原创 AES 加密
import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import java.security.NoSuchAlgorithmException;import org.apache.tomcat.util.codec.binary.Base64;import org.slf4j.Logger.
2021-06-21 17:54:05
136
原创 多线程之生产者消费者--管程法
线程之间的交互通讯可以通过生产者消费者方式解决。生产者: 负责生产数据消费者:负责消费数据缓冲区:消费者从缓冲区中消费数据,如果没有就等待阻塞,生产生产数据往缓冲区,缓冲区满了则阻塞等待消费者消费。package thread;/** * 生产者消费者-- 管程法 */public class TestPC { public static void main(String[] args) { Container synContainer = new C
2020-12-07 14:05:56
211
1
转载 Elasticsearch5.x版本中对Text类型进行聚合时提示illegal_argument_exception
"answer": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } },I try to execute this aggregatio"aggs": {"answer": { "terms": { "field.
2020-11-20 15:51:15
700
原创 Linux 安装Yapi 设置后台运行方案
1安装 screenyum install screen -y新建一个名为 yapi 的进程screen -S yapicd /usr/local/software/yapinode vendors/server/app.js2pm2安装npm install -g pm2后台启动 / 关闭我的yapi是安装在/usr/local/software/yapi启动执行: pm2 start /usr/local/software/yapi/vendors/ser
2020-11-20 13:46:55
734
3
原创 linux 修改22端口
1 修改文件vi /etc/ssh/sshd_config2# Port 22 下一行输入 Port 端口(端口号至少5位)Port 125803重置服务systemctl restart sshd.service /etc/init.d/sshd restart
2020-11-17 16:26:04
1356
原创 JAVA 连接KepServer连接配置说明
1 KepServer 服务器配置计算机管理->系统工具->本地用户和组创建一个用户,用户名和密码需要记录先来,程序连接kepServer的时候需要输入。1 添加到DCOM组把创建好的用户需要添加到DCOM组中。3 把OPCUser从普通用户中删除4 配置防火墙规则开放DCOM 访问右键属性--已启用5 创建 OPC 程序规则允许程序 OPCEnum,右键属性新建入站规则--程序--找到OpcEnum..
2020-10-26 09:13:59
8281
4
原创 Redis实现发布与订阅
Redis发布与发布功能(Pub/Sub)是基于事件作为基本的通信机制,是目前应用比较普遍的通信模型,它的目的主要是解除消息的发布者与订阅者之间的耦合关系。 Redis作为消息发布和订阅之间的服务器,起到桥梁的作用,在Redis里面有一个channel的概念,也就是频道,发布者通过指定发布到某个频道,然后只要有订阅者订阅了该频道,该消息就会发送给订阅者。 1发布消息 Redis中发布消息的命令是publishpublish msg 'hel...
2020-08-20 14:41:27
372
原创 SpringBoot 集成多个rabbitmq
SpringBoot 集成多个rabbitmq在项目中经常遇到一个springboot工程要连接多个rabbitmq。如果只连接一个,springboot可以零配置连接rabbitmq,这样不需要做额外的工作。但如果连接多个rabbitmq,就得做一些配置了。1 配置多个rabbitmq的连接地址:spring.rabbitmq.first.host=192.168.10.223spring.rabbitmq.first.port=5672spring.rabbitmq.first.usernam
2020-07-10 10:00:40
3492
1
原创 Springboot使用rabbitmq的延时队列
使用rabbitmq的延时消息队列处理定时业务的场景,比如下单后必须在5分钟内完成支付,否则5分钟后不让支付订单。具体实现如下:1 发送延时消息 /** * 发送延迟消息 */ public void sendMessage(Order order) { if (order != null) { String msg = JSON.toJSONString(order);// rabb
2020-05-18 11:44:00
258
原创 SpringBoot 使用redis的key 过期通知
1 redis默认key过期通知是关闭的,原因是多少会对cpu性能有影响,要使用redis的key过期通知功能,就的改配置: config set notify-keyspace-events Ex人后重启redis生效。2 添加redis的配置import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import
2020-05-18 11:31:14
1936
原创 websocket 从ip端口升级https域名模式
做系统升级的时候前端有用到websocket做数据实时更新,之前用的websocket连接时ip加端口模式:this.ws = new WebSocket("ws://192.168.10.63:15674/ws")这种模式是没有问题的,但当项目的访问从http升级到https的时候,发现websocket连接不上了前端报错了!!!让人头疼的错误~~遇到问题还得解决问题,于是就硬着头皮整问题,于是发现websocket的连接有2种方式,this.ws = new WebSocket(
2020-05-15 15:18:14
5548
3
原创 nexus-3 对jar的上传,删除,下载等
nexus-3 安装成功之后,如上一篇博文(https://blog.youkuaiyun.com/u011051912/article/details/105551982)。那么接下就是怎么用nexus上传,删除以及下载jar包。1 上传:1.1 手动上传:2 命令上传mvn deploy:deploy-file -DgroupId=net.sf -DartifactId=jso...
2020-04-20 14:30:04
4253
原创 Linux中搭建Maven私服--nexus-3.22.0-02
1 首先从官网下载:url:https://help.sonatype.com/repomanager3/download如下图所示:上传到linux服务器:解压: tar -zxvf nexus-3.22.0-02-unix.tar.gz启动:进入bin目录:./nexus start如上图所示:说明启动成功。接下来就是mav...
2020-04-16 10:35:27
935
转载 BlockingQueue 详解
1. 前言BlockingQueue即阻塞队列,它是基于ReentrantLock,依据它的基本原理,我们可以实现Web中的长连接聊天功能,当然其最常用的还是用于实现生产者与消费者模式,大致如下图所示:在Java中,BlockingQueue是一个接口,它的实现类有ArrayBlockingQueue、DelayQueue、 LinkedBlockingDeque、LinkedBlo...
2020-04-15 14:02:25
603
原创 Spring Boot注解大全
一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuration等同于spring的XML配置文件;...
2020-03-31 10:11:46
156
转载 Guava 教程
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所...
2020-03-30 17:21:50
1140
转载 单向链表逆转
不善言谈的优秀程序员在面试中往往是要吃巨亏的,你没有办法通过说话来轻易证明自己的实力。不论是大厂还是小厂,大部分面试官都不具备优秀的面试能力,它们也只能通过三言两语观察一下面试者的表面工夫。老钱就是这样吃了很多亏的程序员,不喜欢准备面试,不喜欢吹嘘虚假的不存在的经验和能力,甚至连网上的笔试题都懒得做,因为在实际工作中这些鸟题根本一点都用不上。但是这并不是什么值得骄傲的真诚,面试不做准备是对目标...
2020-03-30 15:04:21
490
原创 SpringBoot 集成Swagger2 管理API接口文档--安全性管理
在上一篇博文中介绍了Swagger2 在Springboot中的集成使用,但问题又来了,当随着项目在线上部署运行,总不能把接口也暴露出来把,这样API文档不安全。为了解决这个问题,有2种方案。方案一:使用注解@Profile({"dev","test"})表示在开发或测试环境开启,而在生产关闭。方案二:使用用户名密码认证访问。针对方案二:首先在配置文件中添加:## 开启Swagge...
2020-03-10 14:21:24
2106
原创 nginx的详细配置
nginx的详细配置1配置虚拟主机就是在一台服务器启动多个网站。如何区分不同的网站:主要有以下两种方式方式一:端口不同方式二:域名不同2 通过端口区分不同的主机和多个域名区分虚拟主机nginx配置文件的位置:/usr/local/nginx/conf/nginx.conf原始配置文件的内容如下:#user nobody;worker_process...
2020-02-20 16:43:25
1517
原创 nginx安装详细教程
1 什么是nginxNginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。2 应用场景1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。2、虚......
2020-02-20 16:38:21
2128
原创 SpringBoot 集成Swagger2 管理API接口文档
Springboot项目中接口管理文档Swagger2的使用1 添加依赖,本人使用的maven,必须建立springboot web项目。 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-sw...
2020-01-13 11:17:58
1458
原创 RSA 加密解密
RSA 加密解密实现代码如下:package com.cictec.network.bus.barcodecheck;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;import javax.crypto.Cipher;import java.sec...
2019-12-05 15:48:15
1590
原创 Spring boot PageHelper.startPage(pageIndex, pageSize)分页无效
突然项目中的分页不起作用了,后台代码:1、PageHelper.startPage(pageIndex, pageSize)要放在要分页的上面,也没错后来一想,是springboot做了升级。然后把pagehelper切换成对应的2.0的版本即可。 <dependency> <groupId>com.github.pagehel...
2019-11-21 10:36:13
4027
3
原创 快速定位JVM中消耗CPU最多的线程
项目中突然就CPU 100%以上,导致服务不可用。解决办法如下:1.先定位CPU高的进程:top 命令:通过以上这个结果,我们可以看到 cpu 最高的线程是 pid 为 10515的线程,占了CPU是100% ,我们可以通过top -Hp <pid>来看这个进程里所有线程的 CPU 消耗情况,得到类似下面的数据。 top -Hp 10515:可以看...
2019-11-20 15:28:27
2540
转载 nexus 3.x最新版下载安装和上传下载jar
注意:nexus 3.x最新版好像不用下载索引了,目前我使用一些基本功能没有索引也能耍的很6下载nexus最新版下载https://www.sonatype.com/download-oss-sonatype然后解压就好安装安装的时候直接双击bin目录下的exe文件是无法安装的,需要打开控制台跳转到该路径下,执行命令nexus.exe/run,回车之后会稍微停顿,然后出现这个就表...
2019-11-19 11:13:43
1574
原创 springboot RestController 配置fastjson,实体为null时不显示问题
Springboot 在和fastjson配合使用时,当返回实体为空时拦截不显示问题。在实际业务中,不管返回实体是否为空,都需要显示出来,如果为空则显示null。解决方案,引入fastjson jar包 <dependency> <groupId>com.alibaba</groupId> <...
2019-11-18 11:10:30
4087
原创 区块链到底是什么
“要把区块链作为核心技术自主创新重要突破口,加快推动区块链技术和产业创新发展。”随着区块链上升为国家战略,无论是资本大佬,还是市井大妈们都在畅聊区块链。那么,区块链到底是干嘛的?01区块链将让生活更便利 区块链本质是一个去中心化的分布式账本数据库,其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次交易有效确认的信息。 小伙伴们是...
2019-10-29 10:19:59
1663
原创 Vue + ElemenntUi 项目升级ElementUi版本
由于项目中用到最新的ElementUi组件,但是项目中的ElementUi版本较低,需要升级到高版本,以下是升级歩棸:一、卸载:npm unstall element-ui二、安装最新 :npm install element-ui -S三、main.js中default修改为theme-chalkimport Vue from 'vue'import con...
2019-10-11 17:17:39
3673
2
原创 SpringCloud 主服务加了security 登陆认证后 Client 连接不上的问题
问题事故: SpringCloud 主服务加了security 登陆认证后,突然client客户端全部连接不上了?解决办法:修改主服务启动类:@SpringBootApplication@EnableEurekaServerpublic class NetworkBusServerApplication extends WebSecurityConfigurerAdapter{ ...
2019-09-20 11:23:11
1957
原创 linux java内存监控
jmap查看Java进程对象使用情况:使用jmap可以查看某个Java进程中每个对象有多少个实例,占用多少内存,jmap -histo 进程id第一列,序号,无实际意义第二列,对象实例数量第三列,对象实例占用总内存数,单位:字节第四列,对象实例名称最后一行,总实例数量与总内存占用数jmap -dump:format=b,file=/filepath/h...
2019-09-09 11:51:17
2506
原创 linux 操作命令大全
postgres 数据库启动:systemctl restart postgersql防火墙启动:systemctl restart iptables.service查看linux版本命令:1、# uname -a (Linux查看版本当前操作系统内核信息)2、# cat /proc/version (Linux查看当前操作系统版本信息)3、# cat /etc/iss...
2019-08-16 16:10:14
1348
原创 基于最短路径的深度遍历算法以及有站序控制的路径规划算法
由于产品的需求,现要对一批又起始站的站点规划一条最短路径出来。需求大概就是下图的意思:再查询了最短路径算法后,Dijkstra算法和Floyd算法后,感觉不符合我的需求,然后就自己琢磨写一个算法出来。package com.cictec.network.bus.data1.map;import java.util.ArrayList;import java.util.Has...
2019-07-29 09:55:10
1581
1
原创 Vue 实现的一个日历
由于项目需要,实现一个日历组件,直接上代码,实现逻辑代码里有注释:<template> <div class="calendar"> <div class="now-mouth">{{displayDate}}</div> <div class="calendar-title"> <div cl...
2019-06-14 10:21:29
2119
1
原创 前端参数映射java实体关于类型的坑
前端请求接口带json参数,javaAPI服务接收参数时,需要把参数映射成java实体。这是一个基本的操作流程。可是当前端传一个整形数据时,后端实体如果没有使用包装类型的话,那么int会有默认值的,即使前端不传参数,后端也会默认一个0的值,这与查询结果有有问题了。那是什么原因导致的呢?int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型 ...
2019-06-10 09:52:10
3467
GIT版本使用说明.doc
2020-07-16
pinyin4j.zip
2020-02-03
Elasticsearch的JAVA操作工具类,包括增删改查的封装
2017-09-13
用java写的查询某市地铁的最短路径,递归算法
2016-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人