自定义博客皮肤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)
  • 收藏
  • 关注

原创 Google Guava缓存

大概有段时间没写文章了,主要是自己掌握的东西没有什么值得讲的,很多的技术都是学着别人的文章学到的,还有一点是自己的技术深度还没有达到要求,有些浮躁,最近代码评审的时候发现自己的代码理解开始回退了,开始写一些逻辑代码了,哈哈哈???? 不过及时认识到自己的问题1、???? Google Guava缓存guava 是google 的开源的缓存工具包,基于Java的本地缓存非常的好用,最近也是接触到实际的业务逻辑,看见别人怎么用却总是觉得麻烦难以理解—,— ,(都是这个感觉,不过你真正学会使用之后,就会真香

2021-09-27 22:12:08 1825 2

原创 【Java】邮件发送 springboot 快速版

邮件发送功能不是很常用,但是有时候又很重要,比如重置密码,一般都发送到邮件中,当然手机也可以,但是我相信大部分的人在选择邮箱和手机号码接收验证码的时候都会选择邮箱来接收实现的方案:springboot 支持的邮件服务,使用的是126的邮箱,springboot 1.5.22版本实现方案1/????‍♀️导入springboot邮件依赖 <!--mail--> <dependency> <groupId>org

2021-07-31 14:17:56 512

原创 mysql 索引相关的操作

主键索引(非重复索引)主键默认就是索性创建表的时候可以指定主键,如设置ID为自动递增, id bigint unsigned auto_increment comment 'id' primary key, ...unique索引(非重复索引)除了主键,unique也是索引,只有一个列的表示这列的数据不能重复,多个列的表示不能同时重复。比如下面的表示bridge_from这列和bridge_to这列不能同时重复。已经有a,b的情况下,就不能在插入a

2021-06-30 17:29:39 137 1

原创 Linux 磁盘满了如何排查

使用自动发包的工具可能导致磁盘满了,所以有时候需要清理一下磁盘,因为自动打包工具一般都会保留完整的jar包,而一个jar包可能就有50-100多M,这些jar实际上是没有什么作用了,所以我们可以定期删除一下,但是怎么寻找这些文件在哪呢?先看看到底还剩多少磁盘df -h一般看最大的那个盘也就是倒数第二个 /的可以看到可用的还有11G,表示还有11G的磁盘可以用,如果低于5G就要考虑清理一下了。然后我们一般就从/目录下开始查看目录总共占用的空间du -sh *发现最大的是var下面,然后切换

2021-05-08 19:31:21 351

原创 Git使用和命令

为啥用git?git是代码管理工具,和svn等一样的作用,主要是保存代码版本,不必再为版本管理而发愁,当然它更加的强大。比较突出的是代码合并,分支管理,分布式管理而不是集中式的,这样每一份代码都是完整的。学习git大牛很多,比如廖雪峰git的教程这篇教程也是基本参考该教程编写,当然我的会枯燥一些使用才能牢记,忘记是人的本能Git是什么,来源和用处Linux创始人Linus花了两周时间用C写的一个分布式版本控制系统安装软件Linux上安装git查看版本,是否安装:git --

2020-11-15 12:45:30 154

原创 idea个人设置 qiushi

idea自动包含作者名,创作时间看到一般的开发者都会有自动包含作者的名字,来表示这是自己写的文章,一方面是保护自己的知识,以及团队里面明确自己编写的代码,另一方面也是查看自己的代码的创作时间,帮助自己改进自己的代码。解决的方式一般有两种自动创建在创建Java文件的时候就自动创建,备注信息Setting->Editor->File and Code Templates->Includes->±>name 就写File Header,里面的值就像这样,名字改成自己的,

2020-11-08 16:11:00 1662

原创 idea设置快捷键(代码模板)

idea设置快捷键(代码模板)idea里面非常好用的是大量的代码模板main在类里面使用main就可以直接打出main方法的模板,而不需要像eclipse需要在建立工程的时候选择sout使用sout就可以输出输出模板,而避免了重复的代码,提高了程序员的执行效率。这样的通用的模板肯定不能满足我们的要求,越来越多的模板会被使用到,如何自定义模板呢?非常简单,setting->Editor->Live Templates展开Java那一行就是里面包含的自定义模板比如main

2020-11-08 15:53:38 877

原创 【前端】vue3 接入antdv表单校验

这个很简单,直接写一个自定义校验方法就行了。然后校验规则里面即可,(就是用这个方法,然后debug出上面的mode未设置的问题,因为自定义方法里面的value一直是undifine,-。-)return Promise.reject("用户昵称长度应小于5个字符");} else {} else {return Promise.reject("请输入用户昵称");

2023-08-22 18:24:26 1145

原创 【Java】直接return 会触发try-catch 里面的finally方法么

finally的优先级高,加锁之后,尽量后续的代码全部用try包裹,在finally里面解锁,确保解锁成功finally里面也可以执行逻辑代码,需要确保执行的时候,可以考虑使用finally方法但是要注意 如果finally里面出现异常,,则后续的代码也不会执行。

2023-06-30 11:43:10 395

原创 【谷歌grc】recaptcha browser-error 错误

这个错误码没有明确的提示我们一些信息,那么就表示的是google 对于我们发出去的请求,认定为是一个不合理的地址,那么想到的就是白名单,以及域名认定。关联:谷歌人机校验、grc、recaptcha v3 、error-codes 、browser-error。之前都是调通能用的,突然之间就不能用了,查了半天也没有找到问题,官方文档也没有这个错误码的信息。最后确认问题是因为测试环境域名换了,而没有配置,导致新的域名下的grc人机校验无法正常工作。返回错误信息 browser-error。

2023-02-27 22:11:33 904 1

原创 【JAVA】jdk8 Stream 排序精通

因为对象比基本类型占用空间大,如果排完序之后再翻转,而同时数组长度比较大,那么就可能有性能问题,所以可以直接指定排序的方向,避免不必要的浪费。但是对于完全的数值比较,其实就按照默认的比较即可,给Stream 排序的值即可,特别是对象,只需要指定字段即可。jdk8的stream流能方便的排序,但是每次都要查资料,非常不方便,不确定,所以这次直接弄懂,不再迷茫。,字符串比较很简单,就是字符依次比较,从小到大,第一位相同比第二位,依次排序。因此对象排序,优先使用这样的方式去指定排序,特别是倒序的时候。

2023-02-14 23:01:26 5103

原创 【Mybatis】mybatis mysql count(*) 能不能用 Integer 来接收?

答案是可以,但你要确保不会溢出,你用byte接收都可以,只要xml里面的返回类型(resultType) 同步修改即可。当然还是建议按照统一的标准走(一般都用long),不要这边是integer,那边是Long,频繁的类型转化会非常的痛苦。一般count(*) 接收的方法都是 long型的,那我们用int来接收可以么?编写一个测试类,把对应的类型改成int ,然后观察能够正确的得到结果。进一步测试,使用byte 来接收,且创造一个溢出值。1、可以接收,只要是数字,byte都可以接收。每日一记,好运连连。

2022-12-01 11:50:38 1655

原创 【Java】springboot 枚举参数

不过本次测试的是默认的springboot对枚举的处理逻辑,讨论未做额外处理的情况下,spring接口使用枚举的效果和问题。来实现 自定义转化逻辑,那么你想怎么处理参数就是你自己的事情了,可以做兼容处理,识别里面的值来转化成枚举而不限定name。然后手动调用接口,改变参数值,观察返回值和后台日志,打印出名称则表示获取到了对应的枚举,反之则未获取成功。默认spring的接口对枚举类型的接收处理逻辑比较简单,就是。测试非常简单,写一个接口三个枚举参数或三个接口三个枚举参数。

2022-11-30 14:09:56 1878

原创 【前端】 Vscode 搭建基础开发环境

是否看见别人家的页面美如画,功能炫酷,效果叼叼,其实前端对于用户交互这一块还真是不错。特别是对于一些后端程序员来说,一直想学习写出亮瞎钛合金狗眼的页面(**_*)只要功夫深,肯定能入门,就让我来带你步入前端的大门吧vscode 本身就是js写的,经过测试,确实更适合前端开发,就如idea对于Java一样一样的推荐windows系统,毕竟windows才是用的人最多的(-,- )|客户说好才是真的直接使用电脑管家搜索vscode,下载安装即可(官网很慢)默认是英文版本,我们安装中文插件。插件搜索 chine

2022-07-11 22:26:16 8668

原创 [Java] Lock(锁)的tryLock失败是否需要unlock?

因为锁是非常重要且占用资源的,所以基本上都知道需要解锁常见的代码示例如下没啥问题,但是如果用tryLock获取锁是否也是这样呢?如果没有获取到锁需要解锁么?如果未加锁解锁是不影响还是异常呢?正确的写法是怎样呢?其实实验的方法很简单,写个测试类实验一下就可以了1、如果未加锁就解锁是不影响还是异常呢结果:会产生异常报错2、tryLock没有获取到锁需要解锁么?因为需要让它获取锁失败,所以我们利用多线程模拟下并发情况下,获取失败的效果。代码如下,看起来没啥问题 (实际上有问题 -,-)结果 部分

2022-06-27 15:53:14 3347 4

原创 MySQL脚本 批量修改

需求:tstd_jour流水表分表比如 tstd_jour_1 tstd_jour_2 ... 这样的因为历史遗留问题,之前的表都没有主键id,而是使用的code(字符串code作为主键)目标:全部增加id主键实现:1、单个表的sql变更sql是ALTER TABLE tstd_jour_1 DROP PRIMARY KEY, ADD `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键' first, ADD

2022-05-25 16:50:08 841

原创 @ParametersAreNonnullByDefault注解提示解决

🤳背景Guava Cache构建的时候,实现抽象方法的时候,idea默认会提示Not annotated parameter overrides @ParametersAreNonnullByDefaultparameter Inspection info: Reports problems related to nullabilityannotations: overriding problems (for example, when a nullableparameter is anno

2022-04-19 11:55:44 2315

原创 idea 常规推荐配置(新电脑常用)

idea 开发推荐配置

2022-04-12 09:35:24 965

原创 SpringBoot版本GA PRE解释(Could not find artifact: 2.6.4.RELEASE问题)

🐌 背景起因打算写点小项目练练手,然后搭建版本的时候想到Spring之前的版本更新很快,现在不知道版本怎么样了,因为是自己练手的项目,所以打算把版本调高一点,能解决一些高版本带来的问题,也是一种学习,同时也希望看看高版本的究竟有没有好用的点值得学习借鉴的,所以有了这篇文章。🐣 准备开始当然是去官网看一下,官网网址很简单 spring.io没有www也没有.com,不过现在用了https,你可以完整的输入地址 https://spring.ioSpringBoot官网官网上有各种版本然后查询资

2022-03-17 14:52:21 911

原创 Excel 批量拼接数据(SQL拼接)

同上一篇VSCode操作数据批量拼接SQL,需求背景主要是做数据批量变更,对于无法或者比较难直接构建出更新条件的,可以对结果集手动处理一下,然后再批量执行SQL1/🦁 前置条件解析为啥使用Excel 来处理数据呢?原因主要有以下几点:1、阿里云支持将结果集导出为Excel,那么我们就可以非常方便的拿到原始结果集,然后直接操作拼接,非常方便。2、Excel的适用面积非常广泛,基本国内的装有Excel,无需额外安装软件,而且本身Excel的功能强大,比如快速匹配、全局替换、函数求值、快速筛选有效.

2022-03-11 16:45:47 3304

原创 VSCode 批量拼接SQL 教程

背景条件 一批数据有问题,我需要拼接SQL,所以需要批量多行操作1🎩 、多行选中mac 下面是 option ,然后鼠标左键点击选择多行即是多行会有光标闪烁,然后你输入就都会同步输入2👒、批量多选因为我是批量修改SQL,所以我希望直接多选,而不是每行都点一下按住option + alt(也就是command)+方向键上或者下即可快速多行选择3🩴、批量全选还是需要一点点选择,能不能快速全选其实直接点就可以了按住 option + shift,然后点击开始的行的,再点击最后的行即可全选.

2022-03-11 11:00:36 594

原创 idea 非单词画波浪线问题 (设置专属单词)

【idea设置专属单词】idea单词拼写提示报错的问题

2022-01-28 15:38:12 3033

原创 【微信卡包】模板消息-对接问题汇总

1/???? 问题背景:业务需要支持微信卡包,商家能够在我们平台创建并管理会员卡,能够根据微信卡包发送消息,而且有个特殊原因需要我们能够兼容使用别的平台之前创建的卡(比如小精灵)。2/????思路总结查看官方文档介绍和产品大佬找到的信息,微信提供商户发行和使用微信会员卡来快捷管理会员,同样是基于微信公众号的,微信官方会员卡玩法文档介绍然后照着思路查看看起来非常的简单,微信提供了相关的信息处理接口,只需要调用即可,就是创建会员卡、提供投放链接、新用户激活会员卡、管理微信会员卡、推送信息给微信会员卡用

2021-11-28 13:47:30 610

原创 【小知识】java split 两参,str.split(“s“,1)

Java 字符串分割很常用,但其实它还有第二个参数,limit,它有什么用呢?我们来试试就知道了基础常见用法切割字符串为字符串数组,一个字符串参数,表示以这个字符串作为切割的判断依据。比如常见的时间都是:来分割,我们就可以切割来拿到数字。比如下面这样 @Test public void test(){ String[] splits = "5he55llo 5world5".split("5"); for (String split : splits

2021-08-27 16:54:54 4603 2

原创 【mysql 】 case when 统计报表利器

结合实际的业务才发现有些功能是非常的好用,而case when非常适合做统计报表。最常见的统计报表比如成绩统计select (case when point>0 and point <60 then '不及格' when point>=60 and point <=80 then '良好' when point>80 and point <=100 then '优秀' else '不及格' end ) as pointv,

2021-08-10 19:30:51 745

原创 No validator could be found for constraint ‘javax.validation.constraints.NotBlank‘ validating type

1/????????‍????起因报错No validator could be found for constraint ‘javax.validation.constraints.NotBlank’ validating type ’2/????‍????背景介绍我们一般写接口的时候需要做参数校验,特别是一些必填的字段,如果不填,我们的逻辑和业务根本无法进行下去,那么免不了要做参数校验,当前Java开发这么多年已经完善出很多框架帮我们实现这样的自动校验参数的功能了。 /** *

2021-08-08 09:16:36 4396 3

原创 接口开发规范总结 秋时-后端

最近学到了一个词汇,分享一下 ღ( ´・ᴗ・` )Because of love,不是因为爱❤️,有趣的解释为:因为热爱做着我们热爱的事情,才是生活的乐趣所在,哈哈哈1/????????‍????背景本身不应该把自己的代码风格要求给别人,但是优雅的代码都是通用的(很多的代码也是别人写的,你会觉得很ok才会去继续使用),而且有些朋友可能想学习一些真实的代码规范,就我目前的工作总结一点常见的代码接口规范搭建常见的项目写下来,希望能让你Java写起来越来越顺手,对于代码的维护变得愉快起来。???????

2021-08-04 21:21:34 733

原创 【Java】跨域处理拦截器 (以及中文乱码问题)

问题背景有个项目有两部分:h5+大屏展示,两个人做,分了两个前段项目,后端一个解决方案:1、Nginx 代理,支持两个域名访问同一个后端(✅)2、支持跨域,不限制跨域(????????,最后还是采用了这个)配置跨域支持两个前段一个后台,如果用Nginx配置一下不同的域名转发一下也没有问题,但由于合作方基本不用Nginx,全靠slb拦截之类的骚操作,导致后端只能开放为允许跨域。配置方式很简单,直接给贴个全的,感动不感动,-,-@Configurationpublic class WebMv

2021-07-23 19:33:51 1771

原创 【Java】Optional 总结和使用

springboot data jpa 2.5x的框架通过主键查询又改回findById,之前1.5x的是findOne,在2.5里面findOne是查询符合条件的一条数据而且findById通过主键查询数据返回值不再是实体对象了,而是Optional<实体对象>对象,Optional对象是jdk1.8以后才支持的,所以要使用jpa2.5x需要至少jdk1.8或以上。什么是OptionalOptional主要是针对null值处理,也就是程序中绝大部分的bug,空指针异常。一方面程序更加的优

2021-07-19 10:34:49 3203

原创 centos yum 安装php 7.4 亲测可以

查看PHPsudo yum list installed|grep php可能装了5.x的版本,直接卸载sudo yum remove php* -y参考文档 安装phphttps://www.php.cn/centos/459745.html这篇教程写的比较详细,但是有一些坑,补充说明一下,帮助大家节约时间(-,-别问我为啥要装php…)开始安装其实网上很多教程都类似,但是为什么主要参考这篇呢?第一步,安装gcc gcc-c++,这一步装了,后面安装都很顺利。sudo yum

2021-07-07 10:55:54 1743

原创 记录一次阿里云Mysql 数据库恢复 qp.xb文件恢复数据

数据库因为某种情况被删掉了一列数据,需要恢复数据。但是使用的是阿里云的MySQL,阿里云的数据库都是有备份的,但是可能是一天一次,数据还是会有影响的。备份机制原理其实很简单,也是使用的开源已有的备份软件,你不用阿里云的也可以自己每天跑一下脚本备份一下就好了。所以本来期待可以单表恢复,结果还是给了全库让自己去恢复数据。。。开源软件Percona Xtrabackup可以用于对数据库进行备份恢复所以你需要安装Xtrabackup的软件来恢复恢复数据首先肯定是官方的教程,这里面也给你讲了,你可以下载

2021-07-05 19:53:23 7943 5

原创 centos wordpress 安装实践

首先数据库我们已经有了,就不需要装了。yum install httpd -y查看文件安装在哪 whereis httpd修改配置文件端口 vi /etc/httpd/conf/httpd.conf监听端口改为8200Listen 8200安装phpyum install php php-devel还要装个php-mysql插件 yum install php-mysqlnd -y启动httpd,如果之前启动了需要重启一下systemctl restart httpd

2021-07-03 16:23:24 116 2

原创 springboot log4j2.yml 配置日志文件自动过期(只保留7天) 亲测可以!

线上出了一个奇怪的bug,上传文件部分请求出现500错误同一个文件上传,部分请求会出现500错误,部分返回正确的图片地址。环境:20台服务器的集群,Java jar程序经过排查发现是磁盘满了,参考之前我的文章如何排查磁盘100%发现一个令人大吃一惊的事情,每台机器是40G硬盘,日志文件占了32G,-,-至于为什么部分请求成功呢?因为20台还没有所有机器都满。首先肯定是删除一波日志文件解决问题,发现info的日志有部分几天高达有2G的大小,这谁顶的住,应该是线上出了bug,然后疯狂打日志(内网环

2021-07-02 19:01:27 7278 6

原创 【运维】centos mongo安装

安装mongo参考文章https://www.cnblogs.com/flying1819/articles/9035408.html设置源vim /etc/yum.repos.d/mongodb-org-3.4.repo#添加以下内容:[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gp

2021-07-01 15:19:26 132

原创 application.yml和application.properties和-dev加载和覆盖

springboot约定大于配置让我们省了很多心,但是很多约定我们却不是很确定比如同时支持application.yml和application.properties那么谁配置为准呢?是怎样生效的呢?同时配置的加载和覆盖问题同时配置.yml和.properties的时候,是二者都生效,但是后面加载的会覆盖掉前面加载名称相同的属性,你可以理解为map,名称一样的被认定为是同一个配置,比如端口号。这个规则不仅仅对application.yml和application.properties生效,对于衍生

2021-07-01 10:44:11 5013

原创 mysql 批量导入.sql文件(脚本实现)

其实批量导入导出数据很常见了,可以参考我之前写的博客mysql数据库导入导出简单的文件导入导出没问题,但是生活总是惊喜连连,突然叫我们迁移一个之前非常大的一个系统,给了一个压缩包5百多M,解压缩之后有5.6个G的文件,这还是删减过后的文件问题分析里面有27个.sql文件,我开始以为是一个数据库里面的27个表,结果是27个数据库…好吧,手动单个运行是不可能的,程序员怎么可能重复操作27次呢?而且文件拖到dategrip里面,然后右键选择数据库,点击运行,运行效率也不高。一个文件大概运行几分钟,还是

2021-06-30 21:22:56 1774

原创 mac brew 软件安装(以mysql为例)

查询已经安装的软件brew list查询软件,MySQL可以换成你想装的软件brew search mysql安装软件,一般要指定版本装,不然会安装最新的brew install [email protected]卸载软件,名字和list里面的一致brew uninstall [email protected]然后是最主要的问题,如何启动服务.注意是services不是servicebrew services start [email protected]停止服务brew services stop [email protected]

2021-06-30 20:12:45 164

原创 idea发起http请求

写好了接口怎么测试?postman?可以其实可以用idea支持的http客户端来实现请求在resource下面新建一个包,如rest、http之类的,名字随便取,在这里面我们来创建我们的请求。首先创建一个文件 http-client.env.json 一般都叫这个名字,你要改也可以。里面配置下本地请求,{ "local": { "baseUrl": "http://localhost:9200/xxx/", "Authorization": "Bearer eyJ0eXBlI

2021-06-30 16:07:20 5071

原创 centos yum安装jenkins

软件发包太麻烦,不如使用jenkins一键式发包。其实jenkins的原理非常简单,就是依靠git的webhook回调,当git仓库推送提交请求的时候就会给jenkins的回调地址发送一个回调信息,jenkins就知道要干活了,然后去拉取指定分支的代码,然后执行本地的shell命令,先打包,然后在启动程序,实现自动发包的效果。多的就不说了,如何快速安装jenkins呢?采用安装包安装的太慢了,很麻烦,其实yum直接安装就好了。参考博文 https://blog.csdn.net/diyiday/ar

2021-06-30 09:53:17 130

原创 centos yum 安装软件教程

yum 是centos自带的包管理工具查询软件,可模糊查询yum search redis安装软件,可以在最后 加-y,表示默认全部接受安装yum install redis查看已安装软件,常常和grep联合使用,yum list |grep redisyum list卸载软件yum remove redis安装的时候提示,jenkins-2.289.1-1.1.noarch.rpm 的公钥尚未安装,这样的问题,可以直接跳过公钥检查,完成安装。yum install jenki

2021-06-30 09:40:17 156

空空如也

空空如也

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

TA关注的人

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