自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爬虫技术笔记

爬虫技术学习笔记

2024-06-07 19:30:40 850

原创 虚拟机上部署java微服务

【代码】虚拟机上部署java微服务。

2024-05-21 14:12:02 463

原创 java的POI操作处理心得

POI操作

2024-01-05 10:10:28 520 1

原创 AJAX的请求参数不能出现?特殊符号

Ajax请求错误

2023-09-11 11:54:30 278

原创 为了快速掌握使用 ChatGPT,我应该着重学习什么?

了解ChatGPT的使用限制,如每分钟请求限制、最大回复长度等,以及如何处理敏感信息的问题。比较ChatGPT与传统规则引擎和其他AI模型的差异,理解ChatGPT的优势和局限性。掌握如何使用系统级别和用户级别的提示,引导ChatGPT生成特定类型的回复。学习如何设置生成结果的最大长度、温度等参数,以控制回复的详细程度和创造力。探索引导对话的方法,如提供示例回答、设定对话目标等,以获得更准确的回复。掌握如何在连续的对话中保持上下文,将前面的消息与后续的消息关联起来。

2023-06-30 11:33:02 1216

原创 JAVA做语言国际化

这里有个坑,就是如果不指定-encoding UTF-8,则这个命令会自动调用操作系统默认的中文编码即GB2312编码对属性文件转换成Unicode编码,这样转换后,因为属性文件使用的是UTF-8编码,这样到时候用java国际化翻译读出来的文字就是乱码,这点一定要注意!公司做SaaS系统,需要做成国际通用版本,至少支持简体中文,繁体中文和英文版本,然后我使用的是java的国际化方案,通过查资料和动手实践,踩过了几个坑。例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据。

2023-04-04 11:56:47 1066 1

原创 视频剪辑-找不到视频缓起缓落那根线

视频剪辑相关

2022-10-12 11:58:34 146

原创 主线程误加事务当多线程中有调用sql

多线程情况下最好少用事务操作

2022-08-19 14:57:10 219

原创 分布式接口幂等性、分布式限流:Guava 、nginx和lua限流

幂等性实现

2022-07-22 09:46:16 177

原创 HR管理系统相关概念

HR管理系统相关概念

2022-07-05 10:00:23 120

原创 原版Excel导入数据功能改造

原版Excel导入功能梳理原版Excel导入功能主要是为了用于SaaS系统的各种模块的Excel导入通用化功能的实现,界面是统一的,如下图所示:在导入对话框中,有以下功能:1.模板上传功能:可以将该模块的导入excel模板文件上传到后台服务器,以便下次可以复用excel导入模块,直接通过界面的下载功能将模板下载下来,然后填入数据,然后点击“上传”按钮完成模板的上传功能。后台API接口:/uapi/common/sysQxReports/uploadQxReports2.模板下载功能:通过“下

2022-05-30 15:50:50 277

原创 开发钉工牌

近期根据客户要求需要开发钉工牌,于是打开钉钉开放平台,搜索出钉工牌,查看钉工牌相关对接流程和相关概念,主要利用钉工牌与客户消费机交互,通过钉工牌获取用户在钉钉云上的员工信息,识别出员工信息。参考文档:https://open.dingtalk.com/document/orgapp-server/introduction-to-dingtalk-badge钉工牌设备/接入服务/钉云服务交互流程如下:要调用钉工牌相关服务API,首先需要创建钉工牌应用,创建钉工牌应用流程按如下图所示;文档链接:http

2022-04-07 10:21:28 1653 1

转载 Redis和Mysql如何保持数据一致性

在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题所以,我们都会用Redis来做数据的缓存,削减对数据库的请求但是,Mysql和Redis是两种不同的数据库,如何保证不同数据库之间数据的一致性就非常关键了导致数据不一致的原因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存.

2022-03-08 11:09:11 166

原创 用Git将代码部署到码云

首先在码云上创建一个新的项目仓库,如下图所示创建完仓库以后,再到该仓库首页复制仓库https链接:然后再IDEA上选择File菜单,然后再定位到子菜单New–>Project from Version Control–>Git,弹出Git仓库填写对话框:点击Test按钮,如果提示成功,则点击Clone即可将Git仓库下载到本地,并与远程码云仓库构建联系。在IDEA新建项目中,鼠标右键菜单选择第二个菜单“Add Framework Suport…”,然后再弹出的对话框中选择“M.

2022-02-21 17:28:32 338

原创 Hadoop错误及解决方案集锦

下面列举了在启动Hadoop集群时出现的各种错误及解决方案当启动HDFS集群的时候,启动后用jps命令查询集群各组件状态,发现Secondary name node没有出现。故到Hadoop服务的logs日志文件夹查看hadoop-root-secondarynamenode-VM-4-2-ubuntu.log,发现如下报错:Lock on /export/servers/hadoop-2.7.5/hadoopDatas/snn/name/in_use.lock或者Lock on /expor

2021-12-28 11:11:31 2684

转载 理解、学习与使用 JAVA 中的 OPTIONAL

从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。我们从一个简单的用例开始。在 Java 8 之前,任何访问对象方法或属性

2021-12-22 17:59:15 104

原创 门禁消费机都是非多线程的

最近在做的项目与门禁系统进行交互,出现收集门禁数据不能及时的问题,门禁系统和后台服务器进行交互,主要通过心跳接口和上传数据接口,这两个接口都是硬件设备通过协议定好了接口端口和访问服务目录,必须严格按照其要求才能正确接收数据,门禁和服务器交互主要内容如下:通讯协议:主要采用HTTP协议,用户主要是中大型企业,本身具备良好的网络通讯宽带,所以会有大宽带WiFi,采用HTTP协议是合理的。如果网络通讯宽带比较小应该考虑使用MQTT协议。心跳接口,每次设备主动发送心跳到服务器对应接口,通过心跳请求,可以

2021-12-17 10:18:52 1297

转载 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。截图为网络中搜索到的常见原因:照着修改之后,问题依旧存在。最终花费了好大的力气才找到自己代码问题的根源。dao接口与xml的文件名不一致。接口名与接口文件名都是DepartmentDao, 而配置文

2021-12-16 10:24:03 222

原创 springmvc相关编码规范

最近修复以前开发的项目的bug时发现springmvc编写代码的时候有很多容易地方需要规范,否则难以维护和容易出现不可以预知的bug,总结有以下几点:控制层方法接口接收参数的时候应该尽量避免使用Map这种隐藏未知参数的方式,使用map类型因为前端返回参数名和值都是未知,故这种代码后续开发人员很难维护。故需要用具体参数去接收前端传的参数或表单元素,如果前端传过来的参数较少,则直接使用一个或多个具体参数去接收参数值;而如果要接收的参数比较多的情况,则需要创建一个DTO传输对象,对象中包含包含所有参数以及参数

2021-12-08 15:27:54 239

原创 Referrer Policy:strict-origin-when-cross-origin 404

今天在修复以前项目bug的时候遇到前端访问后端接口的时候总是报404找不到资源错误,经过反复查看代码后来发现代码控制层出现一个严重错误,使用的是spring mvc框架,而以前开发人员写controller层的时候居然用@Controller来修饰控制层,而接口方法返回对象,而前端需要的是json字符串,而controller接口方法要返回json数据,需要用@RestController修饰才对,这样接口方法返回响应对象会自动将其转换为json数据。...

2021-12-08 14:27:48 4004

转载 深入分析 Parquet 列式存储格式

Parquet 是面向分析型业务的列式存储格式,由 Twitter 和 Cloudera 合作开发,2015 年 5 月从 Apache 的孵化器里毕业成为 Apache 顶级项目,最新的版本是 1.8.0。列式存储列式存储和行式存储相比有哪些优势呢?可以跳过不符合条件的数据,只读取需要的数据,降低 IO 数据量。压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如 Run Length Encoding 和 Delta Encoding)进一步节约存储空间。

2021-12-03 11:06:01 823

原创 Linux服务器上telnet本服务器IP和端口拒绝访问

用telnet 本服务器IP 22或telnet 本服务器IP 2181端口,但是提示telnet: Unable to connect to remote host: Connection refused然后用其他服务器电脑访问本服务器IP+端口:运行 》 cmd 》ping 81.68.172.91运行 》 cmd 》telnet 81.68.172.91 1281也可以连接正常后来经过排查,出现上述现象的原因是服务器中有配置虚拟网卡,且该虚拟网卡配置的地址段与服务器的公网IP为同一段

2021-12-01 11:34:44 5775 1

转载 Hadoop启动时遇见Port in use: master:50070 和Cannot assign requested address解决办法

最接买了两个便宜的服务器,本想搭建一个Hdoop集群,可是在搭建的时候遇到了很多的问题,例如: namenode不能启动,datanode能正常启动在master上使用jps查看启动状态:root@master:/Hadoop/hadoop-3.1.1/logs# jps38416 NodeManager37946 DataNode38619 Jps查看hadoop安装目录log文件夹下的namenode启动日志提示:java.net.BindException: Port in us

2021-12-01 11:20:16 1147 1

转载 linux下使用 du查看某个文件或目录占用磁盘空间的大小

linux 查看当前目录占用空间du -ah --max-depth=1du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。du 命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -shdu的功能:du reports the amount of disk space used by the specified files and for each subdirec

2021-11-25 10:17:22 5398

原创 第6章 磁盘结构与磁盘划分

磁盘结构与磁盘划分序言6.1 一切从“/”开始6.2 物理设备的命名规则6.3 文件系统与数据资料6.4 挂载硬件设备6.5 添加硬件设备6.6 添加交换分区6.7 磁盘容量配额6.8 软硬方式链接序言文件系统层次化标准(FHS,Filesystem Hierarchy Standard)、udev硬件命名规则以及硬盘分区的规划方法。6.1 一切从“/”开始6.2 物理设备的命名规则6.3 文件系统与数据资料6.4 挂载硬件设备6.5 添加硬件设备6.6 添加交换分区6.7 磁盘容量配额

2021-11-24 17:29:30 363

原创 Java 性能优化的 55 个细节(珍藏版)

55个性能优化细节1. 尽量在合适的场合使用单例2. 尽量避免随意使用静态变量3. 尽量避免过多过常的创建Java对象4. 尽量使用final修饰符5. 尽量使用局部变量6. 尽量处理好包装类型和基本类型两者的使用场所7. 慎用synchronized,尽量减小synchronize的方法9. 尽量不要使用finalize方法10. 尽量使用基本数据类型代替对象11. 多线程在未发生线程安全前提下应尽量使用HashMap、ArrayList12. 尽量合理的创建HashMap13. 尽量减少对变量的重复计算

2021-11-17 14:02:36 68

转载 IDEA: Error:java: 无效的源发行版: 9

File -> Project Structure -> Project Settings>>Project>Project language 应与JDK吻合File -> Project Structure -> Project Settings>>Modules>Modules languageFile -> Settings -> Compiler -> Java Compiler -> Target byt

2021-11-15 19:25:09 111

原创 第5章 用户身份与文件权限

目录序言5.1 用户身份与能力5.1.1 useradd命令5.1.2 groupadd命令5.1.3 usermod命令5.1.4 passwd命令5.1.5 userdel命令5.2 文件权限与归属5.3 文件的特殊权限5.3.1 SUID5.3.2 SGID5.3.3 SBIT5.4 文件的隐藏权限5.4.1 chattr命令5.4.2 lsattr命令5.5 文件访问控制列表5.5.1 setfacl命令5.5.2 getfacl命令5.6 su命令与sudo命令序言Linux是一个多用户、多任

2021-11-12 14:32:41 4104

原创 第4章 Vim编辑器与Shell命令脚本

4.1 Vim文本编辑器在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。Vim编辑器中设置了三种模式——命令模式、末行模式和编辑模式:命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。输入模式:正常的文本录入。末行模式:保存或退出文档,以及设置编辑环境。在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。表4-1总结了在命令

2021-11-10 16:31:27 782

原创 搭建zookeeper集群步骤和出现问题解决方案

文章目录1.搭建前准备1.1 ssh免密码登录配置方法1.2 安装JDK1.3 下载并配置zookeeper2.zookeeper集群搭建2.1 启动zookeeper服务3. 启动问题1.搭建前准备1.1 ssh免密码登录配置方法准备至少三台主机服务器,如我的主机服务器分别为:服务器名称IP服务器master81.68.172.91服务器slave1121.43.177.90服务器slave2114.132.222.63首先在服务器master服务器上

2021-11-08 19:11:47 2977

转载 玩转SpringBoot之定时任务详解

文章目录序言一、静态:基于注解二、动态:基于接口三、多线程定时任务序言使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:一、基于注解(@Scheduled)二、基于接口(SchedulingConfigurer)前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。三、基于注解设定多线程定时任务一、静态:基于注解基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个

2021-11-05 12:45:47 145

转载 Linux下SSH免密码登录配置详解

这篇文章主要介绍了Linux下SSH免密码登录配置详解假设有 A、 B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。两台服务器的信息如下:主机名IP地址免密码登录用户名server1192.168.12.11guest1server2192.168.12.12guest2环境设置(root权限)1.关闭防火墙和SELinuxRedhat使用了SELinux来增强安全,关闭的办法为:a. 永久有效修改 /

2021-11-05 11:02:28 2261

转载 英语单词联想记忆法26个英文字母编码

英语单词联想记忆法26个英文字母编码:象形码谐音:拼音码A——火箭、金字塔; a——海军帽; B——耳朵; b——瓢; 笔、被、逼; C——小锅; c——舞台、小洞; 喜、西; D——弓; d——豆芽、大肚子; 弟、低、底、的; E——梳子; e——眼睛; 姨、衣、鹅; F——扳手; f——大刀; 父;G——镰刀; g——眼镜; 鸡、哥; H——河; h——椅子; 须、鼠、去、出、喝; I——螺钉; i——人; 爱; J——钩子; j——钩子; 姐; K——机枪; k——机枪;

2021-11-01 09:12:03 6964

原创 第三章管道符、重定向与环境变量

与文件读写操作有关的重定向技术的5种模式标准覆盖输出重定向标准追加输出重定向错误覆盖输出重定向错误追加输出重定向以及输入输入输出重定向输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。分为:标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。表3-1..

2021-10-29 14:52:13 469

转载 Docker Compose-详细参数讲解

Compose 简介Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。最后,执行 doc

2021-10-28 10:40:19 3446

原创 Jenkins部署踩坑

今天用Jenkins部署服务遇到了诸多坑,这里对其中的这些坑总结一下:jenkins构建时错误 Failed to create parent directories for tracking file 用jenkins构建报此错的原因在于:maven仓库的权限不够,解决办法增加文件夹权限: 命令:chmod 777 maven仓库路径 将maven仓库settings.xml配置的本地仓库所在文件夹用上面命令授权,如:chmod 777 /usr/local/mavenRepository/

2021-10-25 17:15:32 563

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键

2021-10-21 14:18:26 126

转载 Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对临界资源的占用权,并进入挂起状态。然后等待消费者消费了商品,然后消费者通知生产者队列有空间了。同样地,当队列空时,消

2021-10-19 16:42:27 168

原创 windows部署nginx踩坑

公司由于历史原因需要用Windows系统部署服务,选用nginx作为web服务器,而启动springboot单服务后,用postman调试是可以正常访问,并且有数据的。之前用命令行定位到nginx文件夹,然后用命令start nginx.exe启动nginx服务,结果按回车键后立马一闪就过去到下一个输入行,之前以为nginx没有启动,后续又输入命令:nginx,结果是停留在那里,以为已经启动了,但是改了nginx配置文件后,结果访问服务,还是跟没有采用最新的nginx服务。其实真实的场景通过启动任务管理

2021-09-28 17:50:49 332

原创 docker之WORKDIR指令

WORKDIR 指定工作目录格式为 WORKDIR <工作目录路径>。使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR 会帮你建立目录。#testFROM ubuntuMAINTAINER helloRUN mkdir /mydirRUN echo hello world > /mydir/test.txtWORKDIR /mydirCMD ["more" ,"test.txt"]假

2021-09-24 15:36:22 11098 2

空空如也

空空如也

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

TA关注的人

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