自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (3)
  • 论坛 (1)
  • 收藏
  • 关注

原创 idea开发常用基本且非常实用的配置

idea开发常用基本且非常实用的配置idea自定义配置文件,存放位置这个配置主要应用场景:电脑安装后,本来配置一大堆自己的喜好,但是由于(pojie)版本升级或者重装系统或者到新公司每次都要配置一遍,配置maven路径啊,提示忽略大小写啊等等,十分的麻烦,这里只要配置一次,以后把文件(你配置的)同步(比如百度网盘)一次就行了,下次安装或者新公司安装的时候直接把配置文件指向你的文件即可.废话不多说,见下想找到你的idea软件安装的bin目录里面,有个名为idea.properties配置文件,比如

2020-10-17 20:38:08 532 1

原创 解决springboot2整合Redis 后某个接口报错 java.io.IOException: 远程主机强迫关闭了一个现有的连接

spring boot2整合Redis5时报错症状为:访问某个接口很慢,即时访问成功后报错,再次访问一切正常,但是每隔几分钟访问接口仍然很慢或者报错2019-08-07 11:34:15.141 ERROR 21076 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for...

2019-08-07 18:00:41 99513 21

原创 Could not get any response postman报错 但是浏览器可以访问

答案在最后一张图片案例分析把postman报错的信息复制再这里,你去翻译一下Could not get any responseThere was an error connecting to http://118.xxx.xxx.10:11134/api-customer/...

2019-04-12 18:31:42 231376 56

原创 Linux安装java常用开发docker环境

软件环境概述以Windows10为宿主机,vm16虚拟机搭建centos7的Linux系统为前提,记录安装过程,其他宿主机版本或者云主机操作类似,仅供参考.docker安装MySQL8

2021-02-27 09:12:25 50

原创 使用vue-cli创建vue前端的脚手架项目

前提是安装完成nodejs和npm软件和环境配置好后,打开cdm,执行如下命令D:\Aworkspace\HbuilderX\vue>vue create hello选择版本(比如vue3)后构建项目,然后进到构建好的项目下执行命令D:\Aworkspace\HbuilderX\vue>cd helloD:\Aworkspace\HbuilderX\vue\hello>npm run serve ...

2020-12-09 16:28:58 248

原创 在Linux服务器上搭建Nexus私服

简单介绍前言:我们常用的maven仓库有中央仓库(全球共用),私有仓库(公司内部共用),和本地仓库(个人私有).类似代码托管大概有GitHub(全球代码托管)和gitee(国内版代码托管)和Gitlab(公司私有代码托管),所有一般公司要内部搭建的往往就是内部代码托管(Gitlab)和内部jar包托管(nexus私服),这里演示的主要是nexus私服的搭建,主要目的是学习并可以模拟maven上传自己的jar包到公司开发流程.私服的搭建安装私服软件nexus首先安装或者搭建服务器自然需要软件的

2020-10-29 17:46:27 620

原创 Nexus搭建Maven私服并使用私服

前言:我们常用的maven仓库有中央仓库(全球共用),私有仓库(公司内部共用),和本地仓库(个人私有).类似代码托管大概有GitHub(全球代码托管)和gitee(国内版代码托管)和Gitlab(公司私有代码托管),所有一般公司要内部搭建的往往就是内部代码托管(Gitlab)和内部jar包托管(nexus私服),这里演示的主要是nexus私服的搭建,主要目的是学习并可以模拟maven上传自己的jar包到公司开发流程.首先安装或者搭建服务器自然需要软件的,那么nexus软件下载地址:http://ww

2020-10-25 01:44:47 433

原创 Linux centos8 安装rocketMQ4.7

去官网下载最新稳定版(稍微找一下下载地址)http://rocketmq.apache.org/docs/quick-start/我这里以4.7.1为例 https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-source-release.zip下载后放到/opt/software/rocketMQ文件夹,并解压[root@localhost rocketMQ]# unzip rocket...

2020-09-23 21:53:29 551

原创 springboot2整合dubbo,以zookeeper为注册中心

虽然微服务已经流行起来了,但是由于公司很多架构仍然是采用dubbo+zookeeper搭配组合实现分布式项目架构,所以这里还是象征性写个笔记,以后可以用来回味搭建zookeeper服务注册中心,用于dubbo的提供的服务暴露给需要调用的客户端找到官网选择下载,这个Windows版本和Linux版本是混合在一个压缩包的,所以一箭双雕哈.https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3

2020-09-19 18:44:35 467

原创 java安全框架之shiro的入门

java流行的权限管理框架目前主要有两款,且都是出身名门,shiro是大名鼎鼎的Apache软件提供商下的,而spring security是spring全家桶成员的一员,都是安全类框架,主要对比如下可以自行查阅其他资料,这里主要说一句就是:shiro和spring security既然都存在,都在企业级应用中大量使用,显然就是选择的不同,根绝业务需求选择了即可,过多对比不再本博客赘述,请自行查阅相关资料.官网:http://shiro.apache.org/什么是权限管理基本上涉...

2020-09-15 14:52:48 423

原创 MySQL数据库优化基本理论

参考博客:https://blog.csdn.net/ThinkWon/article/details/104778621/数据库三大范式是什么第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。mysql有关权限的表都有哪几个MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初.

2020-09-11 09:47:29 442

原创 使用Redis实现分布式锁

分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁本篇博客介绍的是第二种,基于Redis的分布式锁,实际上是使用Redisson这一款强大的框架来实现分布式锁的.代码示例: https://gitee.com/zhang-xiao-xiang/zxx-redis-lock代码结构预览1:创建一个springboot的基本项目,写好一些基本接口所需的基本pom依赖 <!--spring b..

2020-09-11 00:34:42 429

原创 Docker安装Redis集群,无中心节点方式解决方案RedisCluster

下载镜像(这个是mukewang的老是封装好的,拿来即用)[root@localhost ~]# docker pull yyyyttttwwww/redis#重命名[root@localhost ~]# docker tag yyyyttttwwww/redis redis#删除长名字的redis,以免后面干扰[root@localhost ~]# docker rmi -f yyyyttttwwww/redis创建net2网段(我的mysql集群使用了net1,所以这里就使用一个新的.

2020-09-03 19:48:26 4692

原创 Docker安装MySQL数据库集群之PXC解决方案

Docker安装PXC集群,即mysql集群的安装安装PXC 可以使用带版本的安装docker pull percona/percona-xtradb-cluster:5.7,下面干脆安装最新版[root@localhost ~]# docker pull percona/percona-xtradb-cluster由于镜像名字太长,修改成短一点的[root@localhost ~]# docker tag docker.io/percona/percona-xtradb-cl..

2020-09-02 16:24:53 5206 2

原创 2020年springboot微服务打包成docker镜像并发布运行

spring boot 项目或模块完成后,可以编写docker文件,并打包,最后构建镜像并发布.springboot微服务打包成docker镜像流程1:创建springboot项目可以直接使用我写好的demo:示意项目2:打包项目3:编写dockerfile注意最新版idea貌似带有docker插件(没有也可以下载,下载后会有代码提示,比手写的稍微快一点)FROM java:8COPY *.jar /app.jarCMD ["--server.port=8.

2020-09-01 15:04:09 5970

原创 docker 网络

Linux可以ping通容器的网络,但是docker的容器是相互隔离的,哪怎么网络通信呢?比如tomcat容器访问mysql容器[root@localhost ~]# ip addr

2020-09-01 13:05:38 5788

原创 docker DockerFile技术

什么是docker DockerFile技术Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile是一个包含了build过程中需要执行的所有命令的文本文件。也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令组成,每条指令对应Linux系统下面的一条命令,由Docker程序将这些Dockerfile指令翻译成真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Ma

2020-09-01 09:51:50 5772

原创 docker 容器数据卷技术

简单说明一下,比如数据库镜像的数据要和Linux的数据同步即可,这样可以避免docker容器安装的mysql数据库软件即使删除,数据库数据删除了也不会影响Linux里面存的mysql数据库数据,他们是可以互相添加数据的,比如docker添加了一条mysql数据,那么Linux的mysql也会多一条数据,同理,Linux里面添加一条数据,docker也会增加一条数据.我们下载docker的centos最新的镜像(虽然我安装的虚拟机vm安装的centos8,但是和docker的centos最新镜像不一样,一

2020-08-31 16:34:43 5718

原创 docker安装java环境

本文是基于Linux centos8安装docker后再拉取镜像安装各个环境(tomcat,mysql,redis等等)docker安装tomcat下载tomcat(可以指定版本号,这里默认安装最新的版本哈,指定版本号实例 docker pull tomcat:9 )[root@localhost ~]# docker pull tomcat启动(在写博客时tomcat的镜像的webapp文件夹是空的,在webapps.dist里面,所以注意要复制到webapps的目录)[root.

2020-08-31 00:50:52 5920

原创 Linux之CentOS8安装docker教程

官方安装教程 https://docs.docker.com/engine/install/centos/我这里直接使用Windows安装VM虚拟机安装的方式写的教程操作系统要求要安装Docker Engine,您需要CentOS 7的维护版本。不支持或未测试存档版本。卸载旧版本(>这个是xshell复制命令后自动添加的换行符哈,我使用的是root用户)[root@localhost ~]# yum remove docker \> ..

2020-08-30 19:45:21 5995

原创 java 并发编程之AQS(并发界的扫地僧)

AQS是什么所谓AQS,指的是AbstractQueuedSynchronizer,它提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等并发类均是基于AQS来实现的,具体用法是通过继承AQS实现其模板方法,然后将子类作为同步组件的内部类。把它比喻成扫地僧是比较合理的,把线程相关技术比喻成一些武功秘籍,那么AQS就是作者,掌握了秘籍的灵魂.用AQS自己模拟一个CountDownLat

2020-08-26 18:13:27 5817

原创 java线程治理法宝2: Future和Callable(可以处理后续结果,后来的我们)

Future的核心思想是:一个方法的计算过程可能非常耗时,一直在原地等待方法返回,显然不明智。可以把该计算过程放到线程池去执行,并通过Future去控制方法的计算过程,在计算出结果后直接获取该结果。...

2020-08-26 08:52:48 5889

原创 JAVA 多线程之控制并发流程

简介控制并发流程的工具类,作用就是帮助我们程序员更容易得让线程之间合作,让线程之间相互配合,来满足业务逻辑,比如让线程A等待线程B执行完毕后再执行等合作策略。CountDownLatchcountDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。CountDownLatch使用举例pack.

2020-08-24 16:00:44 6102

原创 java 并发容器ConcurrentHashMap与阻塞队列

ConcurrentHashMap简介ConcurrentHashMap是Java1.5中引用的一个线程安全的支持高并发的HashMap集合类。JDK1.8的ConcurrentHashMap 和JDK1.8的HashMap是很相似的。其中抛弃了原有的 Segment 分段锁,而采用了CAS + synchronized来保证并发安全性。ConcurrentHashMap存在的意义1、线程不安全的HashMap因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用..

2020-08-19 18:17:38 6200

原创 java CAS

无锁的概念(开胃概念)在谈论无锁概念时,总会关联起乐观派与悲观派,对于乐观派而言,他们认为事情总会往好的方向发展,总是认为坏的情况发生的概率特别小,可以无所顾忌地做事,但对于悲观派而已,他们总会认为发展事态如果不及时控制,以后就无法挽回了,即使无法挽回的局面几乎不可能发生。这两种派系映射到并发编程中就如同加锁与无锁的策略,即加锁是一种悲观策略,无锁是一种乐观策略,因为对于加锁的并发程序来说,它们总是认为每次访问共享资源时总会发生冲突,因此必须对每一次数据操作实施加锁策略。而无锁则总是假设对共享资源的访问

2020-08-18 11:52:46 6234

原创 java 原子类

Java 并发包中的原子类都是基于无锁方案实现的(CAS),相较于传统的互斥锁,无锁并没有加锁、解锁、线程切换的消耗,因此无锁解决方案的性能更好,同时无锁还能够保证线程安全。java原子类预览AtomicInteger 示例package com.zhang.myjuc.a4.atomic;import java.util.concurrent.atomic.AtomicInteger;/** * AtomicIntegerDemo:演示AtomicInteger的基本用法,对比

2020-08-17 20:27:56 6281

原创 java的中的各种锁

Synchronzied与ReentrantLock(Lock接口的一个实现类)的对比ReentrantLock有很多Synchronzied 不具备的功能ReentrantLock基本使用示例代码如下(重要的事情是解锁哈)package com.zhang.myjuc.a3.lock.lock;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/**..

2020-08-16 23:30:39 6244

原创 并发编程之ThreadLocal

ThreadLocal是什么是用来维护线程中的变量不被其他线程干扰而出现的一个结构,内部包含一个ThreadLocalMap类,该类为Thread类的一个局部变量,该Map存储的key为ThreadLocal对象自身,value为我们要存储的对象,这样一来,在不同线程中,持有的其实都是当前线程的变量副本,与其他线程完全隔离,以此来保证线程执行过程中不受其他线程的影响。主要是四个方法1. void set(Object value)设置当前线程的线程局部变量的值。2. public Ob...

2020-07-26 16:50:35 7877

原创 java线程治理法宝一:线程池

线程池使用及优势线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务, 如果线程数量超过了最大数量 超出数量的 线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 它的主要特点为:线程复用,控制最大并发数,管理线程优点:1:降低资源消耗。通过重复利用己创建的线程降低线程创建和销毁造成的消耗。2:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。3:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资

2020-07-26 11:32:40 8005

原创 java小数计算工具类(直接用糊涂工具包,我也不知道写个这个干什么哈哈)

import java.math.BigDecimal; /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。 */ public class ArithUtil{ // 默认除法运算精度 private static final int DEF_DIV_SCALE = 10; /...

2019-09-11 13:38:57 42803

原创 JDK8新特性

关于jdk8的改变大体有对lambda表达式(借鉴其他语言的函数式编程方式)简化很多啰嗦的代码,还有就是流的操作,类似把集合当做数据库,java的流操作当做SQL,这样方便对集合的数据进行操作,当然对JDK的升级还有很多,这里只是小结一些常用的.GitHubhttps://github.com/zhang-xiaoxiang/jdk81lambda表达式简单试用package ja...

2019-09-08 21:12:33 47582

原创 安全发布对象-发布与溢出

举个不安全的发布对象例子,比如我们创建一个类是下面的方式创建,那么则属于不安全发布对象,就是说这个类压根不安全,使用的时候会导致在多线程环境下不安全package com.example.gaobinfa.publish;import com.example.gaobinfa.annoations.NotThreadSafe;import lombok.extern.slf4j.Slf...

2019-08-22 22:01:09 61482

原创 java并发编程之-JUC并发容器的使用

在 Java 5.0 提供了java.util.concurrent(简称JUC)并发编程容器包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等我们拿其中常用的list容器来作为例子,进行高压(高并发测试),使用代码和JMter测试工具来分别测试线程安全问题...

2019-08-11 15:11:06 76745

原创 java设计模式之装饰器模式(包装器模式)

显然设计模式往往追求开闭原则,所以往往是面向接口编程,那么万事万物就是先写接口,把需求弄出来,这里以一辆车子在陆地上跑为基础,对它进行装饰,使它可以具备更多的"功能",达到装饰的效果.这里由于代码相对简单,直接写在一个类里面了package com.demo.decorator;/** * ICar:抽象构建,面向接口编程,不管三七二十一,来个接口明确要干什么哈 * 就是实现一个毫无...

2019-08-10 11:38:36 80161 2

原创 spring boot2使用AOP注解和反射知识实现非空参数的切面判断

项目demo GitHub上https://github.com/zhang-xiaoxiang/judge-parameter我求求你们不要再黑蔡徐坤了好吗?他是我朋友的救命恩人啊,上次我同学出了车祸,成了植物人。医生都放弃了,都说别救了。可那天在病房,电视上在播蔡徐坤打篮球的视频,我朋友硬是从昏迷中醒来把电视给关了!!!你还在为一大堆参数判断而烦恼吗?这里提供一种思路,使用AO...

2019-07-22 23:18:28 106590

原创 使用阿里巴巴的easy-excel实现excel导入到数据库和从数据库导出excel到桌面

直奔主题了,需求:实现如题所述的基本需求,快速实现excel的处理,那么显然我要给个例子放在GitHub上才能假吧意思体现我的良心项目的地址https://github.com/zhang-xiaoxiang/easy-excel (含有数据库SQL和Excel表格)实现以下excel的数据与数据库的导入导出,具体实现功能如下1:excel下载(单sheet的实现了,多sheet...

2019-07-22 21:47:42 112905 20

原创 Linux安装elasticsearch7.2和kibana7.2最新教程

2019年最新版centos7.6 elasticsearch安装坑爹教程终于在这个重庆凉爽的夏季来到,那么老夫就直奔主题了,首先需要说明的是,Linux安装JDK8(或者更高版本的)后配好环境变量,然后再安装elasticsearch搜索引擎(或者叫他全文检索框架吧),相信百度这个教程了估计JDK安装那个就不需要赘述了,还有值得提出来的就是elasticsearch5.0后的版本,6,7呀这些版...

2019-07-17 00:53:45 117680 13

原创 spring cloud Alibaba 之spring boot2 搭建nacos服务注册与发现

spring cloud有些框架不再维护了(如eureka不再免费开源等原因,当然不影中国人响使用),走了和dobbo当年的老路,但是由于阿里巴巴加入的spring cloud开发中,那么为其微服务的发展注入了新鲜的活力,那么先上个手感受一下再说呗GitHub地址:https://github.com/zhang-xiaoxiang/nacos-spring-boot-example百...

2019-07-14 21:56:16 112856

原创 spring boot2整合shiro安全框架实现前后端分离的JWT token登录验证

代码略多,粘贴一些关键的代码,完整demo当然必须放在GitHub上面啦,当然带SQL文件的,在项目里面GitHub地址:https://github.com/zhang-xiaoxiang/shiro-jwt说明:由于初衷是解决自己项目的bug的,就找的网上的一面博客瞎搞了一个demo.然后报的错网上难以找到解决办法,后来自己解决了,就记录一下,所以不算教程,我看评论大伙说的修改密码...

2019-07-14 09:52:38 125800 37

原创 阿里巴巴fastjson转换对象时属性为空null的处理为空串""的解决办法

在使用阿里巴巴的插件返回对象是,如果需要对其进行json格式化一下,默认是不反回null属性的,当然可以设置的,使用重载方法JSONObject.toJSONString(travelWrite1, SerializerFeature.WriteMapNullValue注意是使用SerializerFeature.WriteMapNullValue序列化规则这里介绍一下JSONObj...

2019-07-11 11:30:22 119288

我的非常详细的-Docker-学习笔记.pdf

docker学习笔记

2020-08-30

狂神说Redis笔记.pdf

这是redis的笔记整理,是狂神整理这里我自己收藏的,有需要的小伙伴可以领取即可。

2020-07-21

我的java知识点汇总

我的java知识点汇总

2020-11-17

长草颜团子-张晓祥的留言板

发表于 2020-01-02 最后回复 2020-04-12

空空如也

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

TA关注的人 TA的粉丝

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