自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何优雅的写代码-替代大量if else的@valid、@validated注解

写接口的时候,参数校验是不是还一个一个的判空或者判断格式是否正确,业务代码没写几行,写了一堆if StringUtils.isBlank,对不对,我说的对不对!!!小啦,逼格小啦。@Valid 注解通常用于对象属性字段的规则检测,具体啥意思,下面让我娓娓道来:下面我们以新增一个员工为功能切入点,以常规写法为背景,慢慢烘托出 @Valid 注解用法详解。/*** 员工对象*//** 姓名 *//** 年龄 */return age;// TODO 保存到数据库。

2024-01-17 20:47:12 930

原创 Centos7安装Mysql5.7,不踩坑教程

CentOS7 安装MySQL5.7 不踩坑教程

2022-06-11 22:24:03 147 1

原创 web渗透

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!一、whois查询和反查1、whois信息查询:域名->注册人和注册邮箱(1)概念:whois反查要先涉及到一个概念就是whois,whois简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息(如域名所有人、域名注册商、域名注册日期和过期日期等)。 通过域名whois查询,可以查询域名归属者联系方式,以及注册和到期时间。(2)作用:通过域名可以查询到注册人和注册邮箱(3)通过爱站进行whois信

2022-04-30 15:57:25 497

原创 java IO流总结

java流类结构图一.流的概念:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。它的特性是进行数据传输;例如从水源地长江把水导入自来水厂,然后又从自来水厂把水送到各家各户。从长江到自来水厂之间的管道我们可以称之为输入流,从自来水厂把水送到各家各户的管道我们称之为输出流,我们大概可以这么理解。二.流的继承体系在java中,为了对不同来源和性质的流对象调用统一的方法,java中的流首先定义了顶层输入/输出流的接口或抽象类,这样不同性质具体的流对象就会有统一的调用方法以

2020-09-27 15:30:02 149

原创 Jenkins+docker+vue nodejs 配置自动部署

新建一个Jenkins任务配置git地址及用户名构建node环境 使用默认配置脚本命令:#!/bin/sh tar zxvf /home/safety_health_web/disttar.tar -C /home/safety_health_web/docker stop `docker ps -aq --filter name=sh-web`docker rm `docker ps -aq --filter name=sh-

2020-09-21 09:37:40 306

原创 Jenkins配置java项目 实现自动部署

新建maven项目脚本代码:#!/bin/bash#jar包文件路径及名称(目录按照各自配置)APP_NAME=bdtd-busniess-2.1.0.jar#日志文件路径及名称(目录按照各自配置)LOG_FILE=/home/safety_health/busniess/main.log#查询进程,并杀掉当前jar/java程序pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print ...

2020-09-21 09:25:32 230

原创 nohup: 无法运行命令“java“: 没有那个文件或目录

问题:nohup: 无法运行命令’java’: 没有那个文件或目录在一个Linux服务器上有shell 脚本如下:nohup java -jar /home/safety_health/busniess/bdtd-busniess-2.1.0.jar >/home/safety_health/busniess/main.log 2>&1 &直接执行脚本 sh start.sh 是没有问题的但是在另一个服务器上,执行这个服务器上的脚本,就会出现nohup: 无法运行命

2020-09-16 09:37:02 13470

原创 git提交代码报错Permission denied, please try again

一、 之前一直可以正常使用,突然出现Permission denied, please try again,重试了很多次,最后使用了笨的方法,忘记密码,重新设置了新密码,然后在重新生成了ssh,解决成功二、 gitLab 设置SSH的方法1. 查看秘钥是否存在$cd ~/.ssh2. 生成秘钥$ssh-keygen-trsa-C"[email protected]"3. 查看SSH$cat id_rsa.pub4. ...

2020-08-19 10:29:46 1679

原创 线程安全性-原子性 - Atomic

线程安全分为三种特性:原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以及时的被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指令 重排序 的存在,该观察结果一般杂乱无序我们这里讲解一下原子性-Atomic包(1)AtomicInteger例://定义实例对象private static AtomicInteger count = new AtomicInteger(0);//先增加操作再获取当前值count.increm

2020-08-01 22:20:10 169

原创 CPU多级缓存

Cpu cache状态: M 被修改状态 E 共享状态 S 独享状态 I 无效状态Cpu cache操作:Local read:读本地缓存数据Local write:写数据到本地缓存Remote read:将内存中的数据读取过来Remote write:将数据写回到主存在多核时代,就容易导致顺序错乱问题,如果我们不做任何措施,结果会大不相同。Java内存模型...

2020-07-26 12:20:32 100

原创 docker搭建PXC集群

前言随着mysql存储的数据量越来越大,mysql查询单表时的响应速度也会随之变慢,尤其是当单节点承载的数据量超出一定的范围后,比如单表超过2000万之后,查询响应速度会下降的很快,因此,一方面可以考虑mysql集群,另一方面可以考虑读写分离,这两种方案的出发点不同,集群更多是从单节点可容纳的并发连接数考虑,比如单节点的mysql服务器支持的最大连接数是有限的;而读写分离可以提升mysql服务总体的读写性能,避免读请求和写请求都打到同一个节点上,分摊压力总结来说,可以归纳为单节点的mysql服务始终是

2020-07-22 15:05:12 332

原创 Linux Centos7 查看SELinux状态| 关闭 | 开启

1.查看SELinux的状态[root@localhost ~]#sestatusSELinux status:enabled 为开启暂时关闭sudo setenforce 02.永久关闭SELinux修改配置文件/etc/selinux/config,将其中的SELINUX=enforcing改为SELINUX=disabled[root@localhost ~]#vi /etc/selinux/config3.重启系统,再执行se...

2020-07-21 10:55:32 2306

原创 Linux中查看防火墙状态| 关闭 | 开启

一.防火墙先是看centos7的防火墙的状态,查看的命令为sudo systemctl status firewalld查看后,看到active(running)就意味着防火墙打开了。如果想关闭防火墙,命令为:sudo systemctl stop firewalld。关闭后查看是否关闭成功,如果看到inactive(dead)就意味着防火墙关闭了。打开防火墙的命令为:sudo systemctl start firewalld。上面都是暂时关闭。如果是想重启后防火墙

2020-07-21 10:51:06 1766

原创 mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘ (Errcode: 13 - Permission denied) mysqld: [ERROR] Fat

docker挂载mysql报错:mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)mysqld: [ERROR] Fatal error in defaults handling. Program aborted!试了很多方法没有效果。用如下方法成功。显示没有权限进行操作,我们在run时加入privileged启动的容器可拥有权限进行操作。使用方法:在docker run中加入.

2020-07-21 10:26:26 2571

原创 docker pull 报错

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout我们需要换个访问的ip首先下周dig工具yum install bind-utils我们使用的就是digdig是一个DNS查询工具.dig向DNS服务器发出请求,然后输出DNS服务器的返回结果。系统管理员可以使用dig来测试DNS服务器。dig会根据/etc/resolv.conf文件中列出的服务器,依

2020-07-17 16:17:25 217

原创 JAVA 并发规范(线程,锁)

Rule 1. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯Rule 2. 【推荐】尽量使用线程池来创建线程Rule 3. 【强制】线程池不允许使用 Executors去创建,避资源耗尽风险,推荐用ThreadPoolExecutor创建线程池Rule 4. 【强制】正确停止线程Rule 5. 【强制】编写可停止的Runnable5.1 正确处理InterruptException5.2 主循环及进入阻塞状态前要判断线程状态Rule 6. 【强制】Runnab

2020-07-17 15:40:35 260

原创 Docker环境下部署redis集群

Docker 基本用法1.安装 dockeryum -y updateyum install -y docker2.启动 / 关闭 / 重启 dockerservice docker start / systemctl start dockerservice docker stop / systemctl stop dockerservice docker restart / systemctl restart dockerps:我本地机器用第二个命令启动成功的。3.

2020-07-16 08:38:49 234

原创 K3s部署

# 1) 环境配置- `每个节点`都要执行一遍## 主机名设置```shellhostnamectl set-hostname node1hostnamectl set-hostname node2hostnamectl set-hostname node3```## hosts解析```shellcat >> /etc/hosts << EOF192.168.1.40 node1192.168.1.41 node2192.168.1.44 nod

2020-07-16 08:34:49 540

原创 RabbitMQ基本特性

1.互联网大厂为什么选择RabbitMQ?2.RabbitMQ的高性能之道是如何做到的?3.什么是AMQP高级协议?4.AMQP核心概念是什么?5.RabbitMQ整体架构模型是什么样子?6.RabbitMQ消息是如何流转的?7.命令行与管控台8.RabbitMQ消息生产与消费9.RabbitMQ交换机详解10.RabbitMQ队列绑定、虚拟主机、消息RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,Rabbit..

2020-07-15 15:34:44 908

原创 redis cluster 三主三从集群模式

安装:1,yum install gcc-c++安装环境centOS2,wgethttp://download.redis.io/releases/redis-5.0.7.tar.gz获取压缩包 我的安装路径:/usr/local/redis3,tar -zxvf redis-5.0.7.tar.gz解压4,cd redis-5.0.7切换到对应目录5,make自此,redis已经安装成功6,./src/redis-server redis.conf启动redis,指.

2020-07-15 14:10:39 184

原创 redis5.0.7主从模式

前言:本文先分享下如何搭建redis的主从模式配置,以及主从模式配置的注意事项。后续会继续分享如何实现一个高可用的redis服务,redis的集群搭建。环境:centOSredis5.0.7安装:1,yum install gcc-c++安装环境2,wgethttp://download.redis.io/releases/redis-5.0.7.tar.gz获取压缩包 我的安装路径:/usr/local/redis3,tar -zxvf redis-4.0.2.tar.gz.

2020-07-15 13:57:08 232

原创 为什么添加索引能提高查询速度?

比如一本比较厚的书,我们需要找到对应的知识点,我们的习惯一般都是先看目录,根据目录去找到对应的知识点。试想一下,假如这本比较厚的书没有目录,我们就需要从前面到后面一页一页地找,直到找到对应的知识点,这个过程估计得耗费一段时间了。跟书本创建目录一样,我们使用 MySQL 时,会考虑在需要做条件查询的字段上添加索引。那么为什么添加索引能提高 MySQL 的查询速度呢?这一节就一起来聊聊这个话题吧。为了便于理解 MySQL 的索引,我们先了解一些与索引相关的算法。1 跟索引相关的一些算法对于

2020-05-13 18:31:36 458

原创 Eureka本地配置高可用

Eureka Server 高可用环境需要部署两个Eureka server,它们互相向对方注册。如果在本机启动两个Eureka需要注意两个Eureka Server的端口要设置不一样1、在实际使用时Eureka Server至少部署两台服务器,实现高可用。2、两台Eureka Server互相注册。3、微服务需要连接两台Eureka Server注册,当其中一台Eureka死掉也不会影响服...

2020-04-03 20:56:42 171

原创 Eureka 学习笔记

Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务。它包含Server(服务)和Clint(客户)两部分。Spring Cloud将它集成在子项目Spring Cloud Netfix中,从而实现微服务的注册与发现。1. Application Service 相当于服务提供者2. Application Client 相当于服务消费者3.Make ...

2020-03-30 16:42:19 93

原创 Spring Cloud 学习笔记 服务发现

一.服务发现因为硬编码API(Ip和端口等)会出现场景有限,无法动态伸缩等问题。所以我们采用服务发现解决。1.各个微服务启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息。2.服务消费者可从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口。3.各个微服务与发现组件使用一定机制(如心跳)通信。服务发现组件长时间无法与某微服务实例通信,就会注销...

2020-03-30 15:09:47 183

原创 理解Vue中的nextTick

Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下。其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick。一、示例先来一个示例了解下关于Vue中的DOM更新以及nextTick的作用。模板<div class="app"> <div ref="msgDiv">{{msg}...

2020-02-29 17:33:12 79

原创 事务锁方案

一.行锁是一种悲观锁为防止被其他人修改。同一时间只能单向进行修改操作1.假设数据会被其他人修改,先把坑占了2.先上锁,再更新,完成后释放锁3.适合写多和写冲突比较多的场景使用方法:在数据库事务中锁定操作行可使用 for update例:select * from t where id = ? for update优点:稳定可靠,不会出现超卖缺点: 1.需要查询和计算:性能差、锁...

2020-02-11 20:57:03 126

原创 计算机系统中的数据读取延迟

我们参照highccalability网站 从CUP、内存、网络等演示数据读取延迟时间总结以下几点我们可以得出:内存>分布式内存>SSD>HDD异步>同步

2020-02-11 12:15:36 501

原创 四色建模法 模型分析和设计

四色建模法共有四个概念:一.时标性对象 - 时刻时段原型1.业务在时间轴上发生的需要跟踪的事件留下的痕迹概念为:跟踪实体对方发生的所有需要跟踪的事项通常生命周期比较短。如:订单等。2.图例用粉色来表示二.实体对象1.业务事件中的参与者:人、事、物通常生命周期贯穿多次业务或贯穿多次时标性对象。2.实例通常用绿色来表示三.角色1.实体在业务流程中所扮演的角色2.图例用黄色表示...

2020-02-10 22:17:13 3361

原创 beego环境配置

此教程默认系统已安装go及git1.在gopath目录下右键Git Bash依次执行go get github.com/beego/beego get github.com/astaxie/beego2.在系统变量->gopath目录下新增beego路径 配置到变量中3.输入命令行bee出现如下所示即安装成功对操作有所疑问可查阅官网添加链接描述...

2020-02-09 18:18:47 199

原创 python基础笔记

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。1.基础语法:1.1Python的代码块不用{}来控制类,使用缩进控制。实例:if True:print (“True”)else:print (“False”)1.2P...

2020-02-08 12:33:01 123

原创 golang并发一看就懂系列

1.从并发模型说起定义:在go里面,每一个并发执行的活动成为goroutine。详解:goroutine可以认为是轻量级的线程,与创建线程相比,创建成本和开销都很小,每个goroutine的堆栈只有几kb,并且堆栈可根据程序的需要增长和缩小(线程的堆栈需指明和固定),所以go程序从语言层面支持了高并发。程序执行的背后:当一个程序启动的时候,只有一个goroutine来调用main函数,称它为...

2020-02-02 23:09:58 179

原创 get和post本质区别

get拼接url,post传body,get限制字符串长度请求缓存:GET 会被缓存,而post不会 原因就是get是url的请求,没有请求体!上哪缓存去!收藏书签:GET可以,而POST不能 原因还是因为url可以收藏,请求体上哪收藏!保留浏览器历史记录:GET可以,而POST不能 原因还是因为get的url请求!用处:get常用于取回数据,post用于提交数据 原因是get的url传输...

2020-01-26 09:51:19 79

原创 VUE element框架多选踩坑

页面回显时赋值 必须用push方法_this.roomb.push(parseInt(res.info[i].Id))如果只是简单的用数组形式赋值,页面无法显示

2020-01-10 16:27:06 167

原创 vue 双向绑定 数据修改但页面没刷新

vue 双向绑定 数据修改但页面没刷新在数据改动的代码后加this.$forceUpdate();若是在某个特定方法中则将this改为方法中设定的名称补充:有时候可能会出现以上的方法也无法使页面刷新时,即可能是因为双向数据绑定中,监听未生效例如,改变了数组中的某一项或者改变了对象中的某个元素时,监听则未生效。出现这种改变数组或对象的情况时,则需要用一些非常的手段数组若要触发监听,...

2019-11-08 15:12:43 1774

转载 Redis报错836

报错信息如下:[10036] 30 Dec 10:23:49.616 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error[8660] 30 Dec 10:23:57.132 # Creating Server TCP listening socket *:6379: listen: Unknown er...

2019-07-13 17:57:43 61

原创 用接口调通内外网数据(二)数据传输

这里是在A平台做的操作获取了html服务端的操作,传给平台B,然后获取平台B的数据传给html。//获取页面检索条件并扔出条件给B平台@ResponseBody@RequestMapping("/return")public Object test(@RequestParam String VIDEO_NAME) throws IOException {System.out.pri...

2019-05-09 17:17:54 703

原创 用接口调通内外网数据(一)解析url

这里博主做了个菜博会的视频平台推数据。一开始的视频为内网+html页面的模式,需要更改为内网+外网+html页面模式实现了多台服务器互通。遇到的技术问题:解析url,转为json输出,这里的输入流是拼到了Stringbuffer里,所以输出的为stringbuffer对象,要想输出json,直接转换是不行的,我用新建jsonobject并遍历的方法,就可以直接输出json对象了。@Resp...

2019-05-09 17:12:01 710

原创 接口传值到springboot,并调用接口值生成的文件

接口传值到springboot,并调用接口值生成的文件首先在controller写一个接口@RequestMapping(value="/edit")public ModelAndView edit() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"修改VideoList"); if(!Jurisd...

2019-04-24 15:11:53 512

java线程安全性精讲.docx

java线程安全性精讲

2020-08-04

java并发规范(线程及锁).docx

java并发规范,根据阿里整合

2020-07-25

空空如也

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

TA关注的人

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