自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 yapi安装插件cross-request

安装yapi插件cross-request一、下载插件:注:网上有的插件是有问题的。如果遇到插件不行,可换一个。二、安装在地址栏输入:chrome://extensions/打开开发者模式安装下载的插件使用打开背景页,可查看发出的请求使用...

2020-11-18 17:07:43 9

原创 jenkins 安装与配置 (Centos7)

jenkins 安装与配置 (Centos7)Centos7 安装Jenkins (rpm 方式)注意:一定是经典网络服务器首先说明本教程基于jenkins-2.245-1.1,但是其他版本基本差不多,主要说一下其中比较坑的几点,做一个总结。1.rpm 包的下载从官网上下载rpm的速度简直让人不能忍受,所以千万不要去官网下载。推荐去:http://mirrors.jenkins-ci.org/status.html,选择第一个清华大学的镜像站,再选择redhat,可以快速下载到最新的镜.

2020-11-10 14:10:04 13

原创 double比较大小

mal data1 = new BigDecimal("1"); BigDecimal data2 = new BigDecimal("0.01"); if (data1.compareTo(data2) < 0) { System.out.println("第二位数大!"); } if (data1.compareTo(data2) == 0) { System.out.pri...

2020-11-10 14:04:11 5

转载 Docker镜像打包示例

一、war包(SpringMVC项目)镜像部署1、拉取tomcat镜像docker pull tomcat:8.5.302、上传需要部署的war包(以hello.war为例)到自定义的工作目录下3、在上个步骤创建的工作目录下创建Dockerfile文件。将war包和Dockerfile文件放在同一目录下。Dockerfile文件内容如下: from tomcat:8.5.30 ENV LANG C.UTF-8 ENV TZ=Asia/Shanghai ..

2020-09-05 14:49:56 65

转载 linux docker 安装

前言:docker就不用说了,好东西啊。更好的利用服务器的资源,各个服务是相互隔离的,文件的存放更加规律,也好清理空间及数据备份docker安装-----社区版ce(免费的,另一版本收钱的)系统:centos 7.4前提:内核版本需要不小于3.10,不然docker起不来uname -r 查看当前内核版本1.配置docker源yum install -y epel-release2.安装dockeryum install ...

2020-07-03 19:12:41 31

转载 spring Boot 应用通过Docker 来实现构建、运行、发布

1. Docker 简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker image 是用于运行容器化进程的方案,在本文中,我们将构建一个简单的 Spring Boot 应用程序。2.环境搭建JDK 1.8+Maven 3.0+Docker 最新版。3.用 Maven 构建项目3.1 创建目录结构mkdir -p src/.

2020-07-02 17:45:28 93

转载 mysql数据库错误1067 - Invalid default value for

一、问题详情Linux服务器下,mysql版本5.7.22导入数据库提示错误[Err] 1067 - Invalid default value for 'date_added'查找字段date_added,发现结果为`date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',完整脚本:DROP TABLE IF EXISTS `attachments`;CREATE TABLE `attachments` ( `id` i...

2020-06-30 15:28:03 141

原创 Redis键的生存时间(expire)

一、redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它。expire 设置生存时间(单位/秒)pexpire设置生存时间(单位/毫秒)ttl/pttl 查看键的剩余生存时间persist 取消生存时间expireat [key] unix时间戳1351858600pexpireat [key] unix时间戳(毫秒)1351858700000二、 应用场景:限时的优惠活动网站数据缓存(对于一些需要定时更新的数据)限制网站访客访问频

2020-06-30 09:19:49 72

转载 redis之expire命令详解

expire是设置redis过期时间的命令,需要注意的点有以下几点expire设置过期时间的单位是秒,如设置name的过期时间为1000秒expire name 1000超过时间后会自动删除key,但是不一定是立即删除,因为redis的过期策略是惰性删除和定期删除的策略。超过时间以后,所有会改变此key的值都会立即触发对key的删除操作,例如:del,set,getset命令;另一种删除方式就是定期删除策略即redis会定期检查过期的key,然后统一删除。persist命令可以清除超

2020-06-30 09:19:17 158

转载 AES加密解密Windows下跟linux下结果不同的解决方案

现象描述:在 windows 操作系统下加解密正常,但部署到 linux 环境中相同的输入加密结果不正确,并且每次运行返回的结果都不同。原理:加密过程需手动指定随机数的生成规则,同理在解密过程中也需手动指定随机数的生成规则。java.security.SecureRandom此类提供加密的强随机数生成器 (RNG)。许多实现都是伪随机数生成器 (PRNG) 形式,这意味着它们将使用确定的算法根据实际的随机种子生成伪随机序列。其他实现可以生成实际的随机数,而另一些实现则可能结合...

2020-06-30 08:54:20 331

原创 Nginx Linux详细安装部署教程

一、Nginx简介Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤二、Nginx安装1、下载Nginx及相关组件Linux系统是Centos 6.5 64位,我直接切换到root用户下安装进入用户目录下载程序 安装make:yum -y install gcc ...

2020-06-30 08:53:39 120

原创 StringRedisTemplate使用

1,导包(因为习惯用sb框架,所以这里用的也是data-redis)<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>2,配置文件中配置(!!还要注意一点,这里...

2020-06-29 18:08:56 68

转载 Java-char类型详解

char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。但是English,Spanish,German, French根本不需要这么表示,所以它们其实采用ASCII码会更高效。这中间就存在一个权衡问题。因为char是16位的,采取的Unicode的编码方式,所以char就有以下的初始化方式://字符,可以是汉字,因为是Unicode编码char c = 'c';.

2020-06-29 18:07:40 85

原创 equals和hashCode的区别和联系

equals和hashCode的区别和联系一、前言前段时间使用list.remove(obj)的时候重写了obj的equals方法,因为list的remove是以equals来判断标准的。但是,今天被公司的代码扫描工具提示未重写hashCode方法!!之前准备面试时也多少看过,但是没有细细研究过这个hashCode和equals到底背后是什么个关系,趁此机会,总结一波。本文章所用到的自定义测试对象类Stu:public class Stu { private String name; pri

2020-06-29 18:06:52 31

原创 事务的传播级别(行为)

事务的传播级别(行为)在TransactionDefinition接口中定义了七个事务传播行为。PROPAGATION_REQUIRED如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。PROPAGATION_SUPPORTS如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。PROPAGATION_MANDATORY如果已经存在一个事务,支持当前事务。如果没有...

2020-06-29 18:05:04 89

原创 Spring声明事务属性

Spring声明事务属性在声明事务时,用到了@Transactional(readOnly = false, propagation = Propagation.REQUIRED)。中间的参数readOnly,propagation我们称为事务属性。它就是对事务的基本配置。事务属性有五个方面:传播行为,隔离级别,事务超时时间,回滚规则,是否只读。1,spring支持事务传播行为:propagation(常用以下两个) ① required 使用调用方法的事务,即在当前事务进行,买...

2020-06-29 18:04:11 92

原创 spring事务的隔离级别

事务的隔离级别数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况。更新丢失(Lost update)两个事务都同时更新一行数据,一个事务对数据的更新把另一个事务对数据的更新覆盖了。比如CMS系统中,两个同时打开一篇文章进行修改,一个人先保存,另一个人后保存,后保存的就覆盖了先保存的那个人的内容,这就造成更新丢失。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。在并发事务处理带来的问题中,“更新丢失”通常应该是完全避免的。但防止更新丢失,.

2020-06-29 18:03:43 44

原创 Spring配置声明式事务

Spring配置声明式事务* 配置DataSource* 配置事务管理器* 事务的传播特性* 那些类那些方法使用事务Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问 时,DataSource实际为Sessi...

2020-06-29 18:02:28 31

原创 -bash: xxx: 未找到命令

-bash: xxx: 未找到命令1.-bash: netstat: 未找到命令yum -y install net-tools2.javac java-version 找不到命令yum install java-devel3.linux安装jdk时,vim 未找到命令当进行安装jdk时,往往需要配置系统环境,当输入vim命令时,找不到vim命令,那么就需要加载插件了。1、输入命令 rpm -qa|grep vim 查询已有的vim插件,正常此命令需要系统存在这样4条。.

2020-06-29 17:59:32 2329

转载 IDEA使用Maven命令

IDEA使用Maven命令IntelliJ IDEA自身已经集成了maven,不需要再去下载!1 点击"Edit Configurations"2 进入Run/Debug Configurations窗口,点击左上角的"+",在弹出的"Add New Configuration"列表中选择"maven".3.为新的configuration输入名称和执行的命令,点击确认4.配置完成后,新的configuration会成为默认的configur...

2020-06-29 17:56:59 81

原创 swagger2 自动生成HTML、PDF接口文档

模块名称:swagger2pdf-master使用测试类启动:Swagger2PdfTest生成的文档存放的目录:当前项目的target\asciidoc\html和target\asciidoc\pdf分别存放着HTML文档和PDF文档。再次生成之前需要清除原文档指定项目Swagger2:...

2020-06-29 17:53:23 160

转载 java集合相关面试题整合(最全版本)

一、集合容器概述1、什么是集合集合框架:用于存储数据的容器。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。(1)接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。(2)实现:集合接口的具体实现,是重用性很高的数据...

2020-04-11 11:58:45 281

转载 5步搞定vue-webpack前端项目本地启动

1.安装nodenode-v10.15.3-x64.msiNode.js :http://nodejs.cn/2. 安装npm淘宝NPM:https://npm.taobao.org/npm-v6.9.0.zip3.进入前端项目目录cd /d D:\GitRepos\account_frontend4.安装依赖npm install5.启...

2020-01-06 09:40:41 352

转载 并发编程CAS机制原理分析及ABA问题解决

CAS:微信公众号一、为什么需要CAS机制?为什么需要CAS机制呢?我们先从一个错误现象谈起。我们经常使用volatile关键字修饰某一个变量,表明这个变量是全局共享的一个变量,同时具有了可见性和有序性。但是却没有原子性。比如说一个常见的操作a++。这个操作其实可以细分成三个步骤:(1)从内存中读取a(2)对a进行加1操作(3)将a的值重新写入内存中在单线程状态下这个操作没...

2020-01-04 16:30:43 49

转载 程序员智力题:100层楼扔鸡蛋,确定鸡蛋摔碎的楼层N

程序员笔试智力题:建筑楼有100层,若曾第N层或更高的楼层扔下来,鸡蛋就会摔碎。若从第N层以下的楼层扔下鸡蛋不会摔碎。给你两个鸡蛋,请找出N,并要求最差情况下扔鸡蛋次数最少。分析:试着从10楼开始扔鸡蛋,然后是20层,30层。。。。。100层如果鸡蛋1在第十层(随便举例子的一个数值也可以是别的数,看到后面就会知道这个值应该取14,但是刚开始分析谁也不知道该取14不是么)扔下,鸡蛋摔碎。那...

2019-12-25 14:22:33 220

转载 MySQL中tinytext、text、mediumtext和longtext等各个类型详解

一、字符串类型 类型 范围 说明 Char(N) [ binary] N=1~255 个字节 binary :分辨大小写 固定长度 std_name cahr(32) not null VarChar(N) [binary] N=1~255 个字节 binary :分辨大小写 ...

2019-12-20 17:13:06 127

转载 HttpClient与CloseableHttpClient

前言起因是最近做的一个历史遗留项目,需要加些新需求,在本机进行压测时,发现在并发600的状态下跑一段时间后,就会开始偶现500的错误。可能是老项目用的人少(B2B的项目),实际部署后以前也没有人反馈过这个问题,大致跟踪了下日志,发现是系统在调用第三方服务出现异常,这种情况原因很多,需要仔细看异常堆栈打出来的Exception信息,将问题范围缩小并求证,这次抛出的是java.net.Socket...

2019-12-05 11:57:48 403

转载 mysql查询表里的重复数据方法

MySQL里查询表里的重复数据记录:先查看重复的原始数据:场景一:列出username字段有重读的数据 1 2 3 selectusername,count(*)ascountfromhk_testgroupbyusernamehavingcount>1; SELECTusernam...

2019-12-02 11:09:43 56

转载 淘宝R2去模糊化+聚石塔+奇门

淘宝api订单直连 R2级数据必须经过聚石塔奇门输出:大部分是按照网上速卖通方式配置的 下面的截取信息一 服务器:聚石塔1.1首先是聚石塔的购买,此处需要说明聚石塔就是服务器,只是换了名字根据需求选择相应配置购买就可以了1.2 聚石塔购买成功后会跳转到下图所示页面点击实例管理,就会进入如下图所示页面 要选择张家口的 +专用网络+外网ip1.3 接下来...

2019-09-25 15:16:42 1408

转载 Java设计模式之策略模式详解

前言在软件领域中,设计模式作为一种经典的开发实践常常需要我们去深入的理解,而策略模式作为设计模式的一种,使用频率也是相对来说比较高的,在Java中,当我们学习TreeSet集合的时候,就采用了经典的策略模式的思想,本文主要讲解策略模式。概念其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发...

2019-09-06 11:47:00 36

转载 设计模式之状态模式(java实现)

在网上买东西都见过一件9折,两件5折,限购两件等等这样的宣传语,我们买不同数量的衣服,就会有不同的折扣,这就是今天所讲的状态模式。一、认识状态模式1、概念状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。也就是说,我们把不同的状态包装成一个抽象类,每一个状态都成为一个独立的类。当状态不同时,处理的状态类也就不同了。如果难以理解我们拿上面商场...

2019-09-06 11:13:52 43

转载 面试官:手写一个冒泡排序,并对其改进

前写过一篇选择排序,很多人把它和冒泡排序搞混了,这篇文章对冒泡排序进行一个分析,希望你能分清楚,也希望能在面试的时候能够完美的回答出冒泡排序。今年的工作据说是不好找,当然运气占很大一部分,但是实力越强运气的成分就会相应降低吧。一、认识冒泡排序之前在学习排序算法的时候,冒泡排序往往都是第一个被介绍,就是因为其太简单。冒泡排序很简单:依次比较相邻的两个数,将小数放在前面,大数放在后面。...

2019-09-06 11:07:23 395

转载 线程池之ThreadPoolExecutor使用

线程池之ThreadPoolExecutor使用32018.04.07 21:44:04字数841阅读61914ThreadPoolExecutor提供了四个构造方法:ThreadPoolExecutor构造方法.png我们以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSi...

2019-09-03 20:01:28 45

转载 Nginx如何实现负载均衡,Nginx负载均衡的几种方式。

1.背景介绍在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如www.taobao.com。那么当用户在浏览器输入www.taobao.com的时候如何将用户的请求分发到集群中不...

2019-06-29 09:22:48 169

转载 Nginx下配置Https证书详细过程

一、Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS协议的主...

2019-06-26 14:19:48 107

原创 Press ENTER or type command to continue

Press ENTER or type command to continuelinux vim时候出现这种情况 有一种是:vimrc 多一个空格 ,还有另一种磁盘满了

2019-06-24 10:08:14 4163

转载 mysql中explain中的参数的分析,主要输type和ref

4.type这列很重要,显示了连接使用了哪种类别,有无使用索引.从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL(1).system这是const联接类型的一个特例。表仅有一行满足条件.如下(t3表上的id是primarykey)mysql>explainselect*from(select*fromt3where...

2019-06-21 11:46:19 8528

转载 Java图片压缩Thumbnailator

Thumbnailator是一个非常好的图片开源工具,使用起来很方便,不过文档不是非常全面,如果遇到问题的话,有时也是不好解决的,我之前研究过,所以分享下经验,以便大家使用时更顺手些。场景一:图片尺寸不变,修改图片文件类型 5. Thumbnails.of("F:\\image\\IMG_20131229_114806.png") 6. .scale(1f) ...

2019-06-20 16:34:07 1133

转载 mysql创建唯一索引

查看索引 show index from 数据库表名alter table 数据库add index 索引名称(数据库字段名称)PRIMARY KEY(主键索引)ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )UNIQUE(唯一索引)ALTER TABLE `table_name` ADD UNIQUE (`column`)I...

2019-06-14 11:45:56 56348

转载 执行git --version时出现bash:git:command not found。

解决方法:打开/etc/profile, 找到path manipulation那一行,在下面的if then中添加 pathmunge 命令路径 (如:pathmunge /opt/git/git-1.9.0/bin)。然后执行source /etc/profile, 再次执行git --version就可执行成功,会显示git的版本号。原:https://blog.csdn.net/...

2019-05-29 16:56:49 1432

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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