自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

佐月儿

不积跬步无以至千里 , 细水长流足以断群山

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

原创 docker 安装mysql8

在挂载后的配置文件中打开/home/mysqldata/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8。更新root用户的密码加密方式为旧版本的native,以防一些客户端不兼容。修改mysql字符集,4.更新一下用户密码。

2023-01-31 00:09:02 571

原创 开发心得体会

作为一名开发人员,是来分享下我的想法。在程序开发行业来说, 程序员写的代码是毫无价值的,可能说的很极端,在整个开发价值链中,代码本身的价值是非常低的,就好比深圳房价和房子本身的砖块,砖块再好到顶也就金砖,如果是金砖也不会用于造房子了。另外技术发展是非常快的,说不定Java,Spring哪天就被淘汰了。only code,no future!对于我们开发来说,我认为最重要的是思维方式。为什么我不懂业务也能写代码?首先,可以不懂业务,但是必须对需求了如指掌。其次,掌握抽象思维, 把复杂多变的

2021-06-11 17:07:02 1753 1

原创 WebSocket推送使用流程图说明

功能: 某个请求触发后台推送数据给另外一个前台进行实时数据显示技术: WebSocket redis mq springboot 前端知识难点: 保证数据不丢失, 多实例下的推送, 链接失效时的处理

2021-06-11 16:33:43 671 1

原创 单元测试Service层需要登录的解决方案

单元测试Service层需要登录的解决方案背景我们目前项目写单元测试,如果接口中没有使用到如下代码,我们直接调用service层即可实现单元测试。不需要做登录操作。TzUser tzUser = SecurityUtils.getUser();然而,现实是绝大多数情况下我们都需要使用到上诉语句和其他登录相关的信息。那么必须做登录才能单元测试,做了登录拿到token,通过在测试方法中手写post方法来发请求,来调用接口。换句话说,我们单元测试的入口是controller层,而不是service

2021-03-24 23:28:10 1265

原创 批量新增和修改数据解决方案

批量新增和修改数据解决方案背景实际业务中,一个接口处理单条数据的情况非常少,多条数据的处理才是常态。通常我们是遍历来处理同类型的多条数据,并分别对每条数据进行数据库操作。伪代码如下for(T t, list<T>){ // doSomething.... insertOrUpdate(t);}这样有什么坏处:频繁连接数据,资源浪费频繁插入,接口性能低下大量数据的时候, 直接爆炸(超负荷了,连接数不够了)逻辑耦合高,数据本身的处理 和 持久化

2021-03-24 23:23:45 1616 1

原创 Linux下安装json解析工具jq和使用了

什么是jq?jq是Linux下面把文本字符串格式化成json格式的工具系统环境:centos 7一、安装(1)yum安装a、安装epel源wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmrpm -ivh epel-release-latest-7.noarch.rpmyum repolist ###检查是否已经添加到源列表yum install -y jq(2)源码安装a、下载源码

2020-12-12 17:35:58 869

原创 Xshell打开报错:要继续使用此程序必须应用到最新的更新或使用新版本

把windows系统时间修改为一年前,就行原因是好像是注册日期到期了资料

2020-12-12 16:45:33 633

原创 系统用户中心升级,向下兼容的流程设计

公司要对原来的系统进行升级, 这次任务主要是负责用户中心的模块, 有一个核心功能: 实现旧系统登录对新系统的单点登录.和一般的单点登录不一样, 这边两个系统用户中心使用的密码加密方式不一样, 旧系统的用户数据同步到新系统后, 由于加密方式不一样,而且MD5加密不能进行解密, 使用,必须设计一套能兼容的登录方式, 要求对用户来说是无感知的, 密码是不变的.难点是加密方式不一样, 而且数据不一样, 对用户无感, 还要第一次登录新系统之后,能把密码加密方式更新为新系统的加密方式.下图是我设计的比较详细的流程

2020-11-30 20:24:46 278

原创 数据解耦的一次实践

有这么一个需求:每个企业都可以配置自己的 数据, 如果没有配置,就使用默认的.配置的数据是公共的,有很多, 只不过每个企业可以自定义具体的哪些配置现在要为每个企业的配置数据进行自定义排序解决方案(两种):在配置表中,为每个企业单独复制一份属于该企业的数据,并设置数据的排序序号(有一个序号字段), 根据企业查询该表,并根据排序序号进行排序.配置表只保留一份全部配置; 另外创建一个企业配置关联表, 在关联表中,进行如下配置:应该有这些数据: id, 企业信息, 该企业的配置表id集合我们

2020-11-30 20:15:00 896

原创 Math.round()的真正作用和含义

Math.round()该方法的效果是: 参数的相邻整数区间向最接近的那个整数进行舍取, 如果刚好在中间,那么取正无穷方向的那个整数Math.round(1.2); //1.2的相邻整数区间是[1,2],更加靠近1,所以结果是1Math.round(1.6);//1.6相邻整数区间是[1,2],更加靠近2,所以结果是2Math.round(1.5);//1.5相邻整数区间是[1,2],刚好在区间正中间,所以取区间较大的那个,所以结果是2Math.round(-1.2);//-1.2的相邻整数区间

2020-08-26 20:08:45 8361 1

原创 如何实现多文件上传的接口,可以区分每一个文件

本文提供是思路,由于具体文件上传的代码很简单, 不贴代码,如有疑问留言告知在下~前提背景多文件上传, 用户可以选择[0,n]个文件这些文件可以基于某种规则进行区分,并且需要进行区分比如 前端页面有A,B两个上传文件的选择框, 用户此时最多有4种选择分别是[{},{A},{B},{A,B}]. 并且我们在业务上是需要对文件A和B进行区分的,它们或许有不同的业务逻辑.那么我们应该如何做呢?方式一: MultipartFile [] files 和 List fileFlag 组合前端

2020-08-05 20:23:19 1469

原创 Mybatis-plus的主键策略

策略在枚举类IdType 中,有五种public enum IdType { AUTO(0),//数据库自增 依赖数据库 NONE(1),// 表示该类型未甚至主键类型 (如果没有主键策略)默认根据雪花算法生成一个Long类型值 INPUT(2),//用户输入ID(该类型可以通过自己注册填充插件进行填充)    //下面这三种类型,只有当插入对象id为空时 才会自动填充。 ID_WORKER(3),//全局唯一(idWorker)数值类型 UUID(4),//全

2020-07-27 20:37:18 1125

原创 安装mysql过程中出现无法找到入口,无法定位程序输入点fesetround于动态链接库

压缩版mysql安装详解这给博客很详细我安装过程中遇到的问题这个异常导致我在cmd中输入命令无效, 问题原因是电脑缺少了 Visual C++ 2013 库解决方案安装下载 Visual C++ 2013 库库的下载地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=40784...

2020-07-08 18:57:36 2200 1

原创 SpringBoot读取配置文件和普通文件中自定义数据

前言为了业务需求改变的时候,尽量少的修改代码,同时增加代码的重用性, 我们通常把一些数据以配置文件的方式配置,而不是写死在代码中.既然如此,如何读取配置文件中的自定义参数,是很有必要了解的.下面我将介绍几种方式,本文是基于SpringBoot而言的,配置文件使用的是yml,和xml是一样的,只是书写格式不同方式一: @Valueapplication.yml配置文件test: ag...

2020-01-14 00:39:41 572

原创 ES查询中.keyword详解

分析ES5.0及以后的版本取消了string类型,将原先的string类型拆分为text和keyword两种类型。它们的区别在于text会对字段进行分词处理而keyword则不会。当你没有以IndexTemplate等形式为你的索引字段预先指定mapping的话,ES就会使用Dynamic Mapping,通过推断你传入的文档中字段的值对字段进行动态映射。例如传入的文档中字段price的值为...

2020-01-13 00:20:48 23377 5

原创 SpringMVC 中 @ControllerAdvice 注解

在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中。@ControllerAdvice 注解有以下3种功能:全局异常处理...

2020-01-11 00:59:11 446

原创 比较java枚举成员使用equal还是==

每篇一句编程直觉很重要,这个是需要慢慢培养的答案是都可以,并且建议使用==相信初学者一定很疑惑,枚举本质是一个类,为什么比较还用==呢?分析如果你看过枚举的源码,你会发现在枚举源码中重写了equals方法,equals也仅仅非常简单的 == 。 我使用 == ,因为无论如何,这个左值是可以为 null的public final boolean equals(Object other...

2020-01-10 16:22:06 409

原创 TCP的链接,我的理解

TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的家里和释放是每一次面向连接的通信中必不可少的过程。因此,运输连接就有三个阶段,即:连接建立、数据传输和连接释放。TCP位于传输层,提供可靠的字节流服务。所谓字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理,而可靠的传输服务是指,能够把...

2020-01-09 01:00:20 233

原创 Visual Studio Code使用Remote-SSH插件进行远程开发

https://www.cnblogs.com/capdiem/p/10926602.htmlhttps://ethanblog.com/tips/remote-development-using-vs-code.html

2020-01-08 16:26:36 885

原创 Thymeleaf处理复杂数据以及与SpringBoot整合

每篇一句2020年, 来了, 在过去的一年里,我成长了很多, 学会了坚持,学会了做自己, 同时也自信了希望今年能继续加油, 坚持下去,一定会有收获的Thymeleaf介绍thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该...

2020-01-07 23:52:07 450

原创 FastDFS

1.分布式与集群的区别区别:集群是个物理形态,分布式是个工作方式。只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式,一般系统现在都是前后端分离,C/S架构、B/S架构,一般服务端部署在内部服务器,而客户端分布在各个用户的机器好比手机、PC机等,这样的系统也是分布式系统。集群一般是物理集中、统一管理的,而分布式系统则不强...

2020-01-06 16:43:29 314 1

原创 Elasticsearch 监控指标解析

https://www.cnblogs.com/ghl1024/p/12078375.html

2020-01-02 21:22:19 335

原创 ElasticSearch

基本概念接近实时(NRT)Elasticsearch 是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是 1 秒)。集群(cluster)代表一个集群,集群中有多个节点(node),其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说...

2019-12-31 19:23:34 507

原创 Spring Cloud GateWay 路由转发规则介绍

以下的路由规则都是依赖于Gateway自带的局部过滤器来实现的https://www.jianshu.com/p/d2c3b6851e1d

2019-12-27 21:54:54 295

原创 SpringCloud各大组件的自己理解,代码太多,就不贴出来了

介绍SpringCloud是在SPringBoot的基础上构建的,用于简化分布式系统构建的工具集. 该工具集为微服务架构中设计的配置管理, 服务发现, 智能路由, 熔断器, 控制哦总线等操作提供了一种简单的开发方式. 也就是说SpringCloud是把非常流行的微服务的技术整合到了一起,方便开发.主要用到的技术有:注册中心: Eureka负载均衡: Ribbon熔断器: Hystrix...

2019-12-26 22:24:44 400

原创 SpringBoot入门

搭建环境有3种方式搭建环境, 切记,搭建环境必须在有网络的环境下进行,网络不好,可能依赖需要下载个几分钟方式一: 手动创建创建maven工程或者Module,不需要骨架添加pom.xml依赖,完整配置文件如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org...

2019-12-16 23:13:34 162

原创 记录我的一个idea

今天我有一个idea,我想记录下来,以免忘记了一个博客平台,一开始注册的时候,每个用户都获得一颗种子,随着发表的文章多起来,这个种族发芽,生长, 成为大树成为大树后,可以获得更多的种子, 直到用户拥有一片森林每一课大树,都对应现实中的一棵树,这棵树的所有权是用户,将来这树上结的果子,可以邮寄给用户,用户体会到自己的收获和喜悦该博客平台,需要兼顾全部优点:用户主题自定义, 开发者提供...

2019-12-16 20:29:57 161

原创 解决MyBatis配置文件 SQL语句 使用 小于等于号 报错的问题

在MyBatis使用配置文件写sql语句的时候,如果出现了需要使用<或者<=做比较的时候,会编译报错,原因就是mybatis解析配置文件的时候把<当成了开始标签,而不是小于号解决这个问题有多种方式方式一: 调换位置比如a < b改为b > a就避免了使用<,也就不会报错了,大于号是不会报错的方式二: 使用代替符号&lt;来代替<使用方...

2019-12-16 16:18:42 3509

原创 启动Tomcat卡在Initializing Spring FrameworkServlet 'dispatcherServlet'

异常背景在使用debug模式启动Tomcat的时候,启动信息 卡在Initializing Spring FrameworkServlet 'dispatcherServlet'不动了异常分析翻译过来就是Tomcat正在初始化Spring FrameworkServlet’dispatcherServlet’一开始很难受,刚刚还能启动正常,怎么居然卡死了? 我以为环境问题,把项目和mave...

2019-12-15 16:28:10 7935 4

原创 CXF框架的使用

导入依赖 <dependencies> <!-- cxf 必须导入以下2个 --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxw...

2019-12-14 23:57:22 290

原创 数字签名和数字证书的原理解读(图文)

每篇一句平生能几到,好处欲穷寻 —— 宋 · 陈著《同袁通判游越中三首·禹庙》正文数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。对于数字签名和数字证书的运用原理,相信有不少朋友还不清楚,下文将为大...

2019-12-14 19:09:28 357

原创 Spring Security权限管理框架

认证和授权概念认证:系统提供的用于识别用户身份的功能,通常提供用户名和密码进行登录其实就是在进行认证,认证的目的是让系统知道你是谁。授权:用户认证成功后,需要为用户授权,其实就是指定当前用户可以操作哪些功能。RBAC权限模块数据模型前面已经分析了认证和授权的概念,要实现最终的权限控制,需要有一套表结构支撑:用户表t_user、 角色表t_role、权限表t_permission、菜...

2019-12-14 18:50:14 562

原创 Spring Security 无法登陆,报错:There is no PasswordEncoder mapped for the id “null”

异常背景在使用Spring Security 框架,登录的时候,账号和密码都正确,但是登录失败,弹出这个异常异常信息There is no PasswordEncoder mapped for the id “null”翻译过来就是: PasswordEncoder的映射ID不能为“ null”我寻思着,我不是输入密码了吗,调试发现密码也传递过去了,怎么就为空了呢?查阅资料发现这是因...

2019-12-14 18:46:47 235

原创 项目中使用 阿里巴巴短信服务

前言几乎所有的项目都会用到发送短信的功能, 无论是手机验证码,手机短信提示,手机短信通知, 都离不开短信服务, 如果我们自己去实现这个服务, 这这个成本太高,而且自己实现的可能漏洞很多, 于是使用第三方的短信服务,成为了项目开发的首选.本文, 我就记录下,我使用阿里巴巴短信服务的全过程. 第三方短信服务有很多, 为什么选阿里巴巴,这我就不说了,你自己去官网看看就知道了.准备阶段首先...

2019-12-13 15:58:18 490

原创 使用POI操作Excel文件

每篇一句坐观垂钓者,徒有羡鱼情 —— 唐 · 孟浩然《望洞庭湖赠张丞相》什么是POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。结构:HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功...

2019-12-10 23:11:21 151

转载 [转载]ThreadLocalRandom源码分析

Random 的缺点分析在 JDK7 之前包括现在,java.util.Random 应该是使用比较广泛的随机数生成工具类,另外 java.lang.Math 中的随机数生成也是使用的 java.util.Random 的实例。下面先看看 java.util.Random 的使用例子如下:public class RandomTest { public static void mai...

2019-12-10 17:13:05 140

原创 JAVA随机数

每篇一句稍待秋风凉冷后,高寻白帝问真源。《望岳三首·其二》- 唐代 - 杜甫获取随机数的方式经常使用的大概就下面5种①Math.random(): 获取随机小数范围:[0.0,1.0) 返回的值是double类型②Random类构造方法:Random() : 建议使用无参构造方法方法:int nextInt(int n) : 获取 [0,n) 范围的随机整数③...

2019-12-10 16:32:09 277

原创 ReentrantLock和Condition的使用

每篇一句浓香最无著处,渐冷香、风露成霏。《声声慢·咏桂花》 - 宋代 - 吴文英前言ReentrantLock 是可重入锁,上一篇博客 可重入锁和死锁 已经介绍了什么是可重入锁,以及需要注意的点. 这里我再来写下ReentrantLock的使用, 也就是API了先来介绍下Lock接口从java5开始,引入了一个高级的处理并发的java.util.concurrent包, 他提供了大...

2019-12-09 15:49:43 346

原创 可重入锁和死锁

每篇一句人最大的对手,就是自己的懒惰;做一件事并不难,难的在于坚持;坚持一下也不难,难的是坚持到底;你全力以赴了,才有资格说自己运气不好;感觉累,也许是因为你正处于人生的上坡路;只有尽全力,才能迎来美好的明天!一: 什么是可重入锁定义: 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提锁对象得是同一个对象或者class),不会因为之前已...

2019-12-09 14:30:52 926 1

原创 守护线程

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)一. 用户线程用户线程是指用户自定义创建的线程,主线程停止,用户线程不会停止main主线程可以看成一个特殊的用户线程只要有一个用户线程没有结束,那么jvm都不会停止.二. 守护线程定义: 守护线程是为其他线程服务的线程,最典型的就是cg垃圾回收器创建守护线程很简单setDaemon(...

2019-12-08 23:25:59 139

空空如也

空空如也

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

TA关注的人

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