后端开发
文章平均质量分 79
Java后端开发相关知识笔记
@Corgi
心有多大,舞台就有多大。
展开
-
【Windows配置nginx开机自启】
【Windows配置nginx开机自启】原创 2024-05-29 15:47:14 · 2082 阅读 · 5 评论 -
【SpringCloud Alibaba-OSS整合问题】
SpringCloud-Alibaba版本:2021.0.5.0。SpringCloud版本:2021.0.5。SpringBoot版本:2.6.13。,不引入会报以下错误,具体可以参考。原创 2024-05-14 14:00:34 · 1114 阅读 · 1 评论 -
【Java 查询树结构列表,递归删除子节点】
【Java 查询树结构列表,递归删除子节点】原创 2024-05-11 14:49:15 · 269 阅读 · 4 评论 -
【Java 解析xml文件,获取文件内容】
Java 解析xml文件,获取文件内容。原创 2024-04-30 17:36:52 · 175 阅读 · 1 评论 -
SpringCloud 组件
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。参考文档 请查看官网。原创 2024-04-19 10:55:47 · 764 阅读 · 0 评论 -
Java 文件上传,下载,复制,删除,Zip文件解压缩,文件内容修改,JSON 文件中字段值的修改,递归删除文件夹及其子文件等
Java 文件上传,下载,复制,删除,Zip文件解压缩,文件内容修改,JSON 文件中字段值的修改,递归删除文件夹及其子文件等原创 2024-04-19 10:40:53 · 387 阅读 · 1 评论 -
分布式基础环境搭建
解压生成的压缩包,将需要的文件复制到项目。-v /mydata/mysql/conf:/etc/mysql/conf.d:将配置文件夹挂载到主机。-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机。-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机。初始化完成后,使用 gitee 仓库中项目的HTTPS链接,在IDEA获取并打开项目。在 pom 文件中添加公共的依赖,在其他项目中引入 common 依赖;原创 2024-04-10 22:46:42 · 994 阅读 · 0 评论 -
springboot 大文件分片上传
大文件分片上传是一种将大文件分割成多个小文件片段,然后分别上传这些小文件片段的方法。这种方法的好处包括:减少重新上传开销:如果网络传输中断,只需重传未上传的部分,而不是整个文件。提高灵活性:分片大小可以根据实际情况调整,以平衡上传速度和请求次数。支持断点续传:服务器可以记录已经上传的文件块,以便在中断后继续上传。分片上传的流程大致如下:文件分片:首先,对文件进行分片,每个分片的大小可以根据实际情况设定,例如,一个100MB的文件可以分成每个5MB的分片,共20个分片。计算MD5值:对每个分片计算MD5值,这原创 2024-03-25 17:02:43 · 1491 阅读 · 0 评论 -
Docker完整版(二)
Dockerfile 是用于构建Docker镜像的脚本文件,由一系列指令构成。通过命令构建镜像时,Dockerfile 中的指令会由上到下依次执行,每条指令都将会构建出一个镜像。这就是镜像的分层,因此,指令越多,层次数就越多,创建的镜像就越多,效率就越低。所以在定义Dockerfile时,能在一个指令完成的动作就不要分为两条。该指令不区分大小写。但是,惯例是将它们大写,以便更容易地将它们与参数区分开来。指令后至少携带一个参数。# 号开头的行为注释。FORM。原创 2024-03-17 18:34:08 · 1053 阅读 · 0 评论 -
Docker完整版(一)
官网中文官网||仓库(镜像网站)Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux、windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。每个镜像都有一个长度为 64 位的 16 进制字符串作为其摘要 digest。查看摘要在镜像结束之后会给出该拉取的镜像的摘要 digest.通过。原创 2024-03-10 19:05:49 · 952 阅读 · 0 评论 -
MySQL相关问题
1、业务驱动,主要是业务及运营人员或者用户反馈给我们的,他们在使用系统的过程中发现某些功能很慢,这种方式一般是项目上线后出现的,开发人员会比较被动,建议不要采用这种方式;5、数据库表结构的设计和SQL语句的执行效率:慢查询是性能问题的罪魁祸首,不合理的数据库表结构设计和不合理的索引是影响数据库查询性能的重要因素;Time=0.01s(0.02s),告诉我们这类语句执行的最大时间0.01s,总共花费的时间是0.02s;3、数据库存储引擎的选择:根据需要选择不同的存储引擎,不支持事务,表级锁;原创 2024-03-04 19:30:16 · 491 阅读 · 0 评论 -
JVM相关问题
指程序在申请内存时,没有足够的内存空间供其使用,抛出错误;比如申请了一个8MB空间,但是当前内存可用空间只有5MB,那么就是内存溢出;即:OutOfMemoryError,是指没有空闲内存,垃圾收集器回收后也不能提供更多的内存空间;原创 2024-03-03 23:03:26 · 990 阅读 · 0 评论 -
HashMap相关问题
定义:对于不同的关键字,可能得到同一个哈希地址,即,而,对于这种现象我们称之为哈希碰撞,也叫哈希冲突;现在我们有一组数:{18 ,23, 5, 32, 50, 14, 34, 39, 11},假设我们的hash函数是用16取余的方式计算:一般哈希冲突只能尽量地减少,无法完全避免,因为关键字在理论上可以有无限多个,而用来存储这些关键字的数组容量是有限的,所以就必然会导致了哈希冲突,只能通过选择合适的哈希函数来降低哈希冲突发生的概率;原创 2024-03-03 17:55:36 · 887 阅读 · 0 评论 -
Mybatis框架相关问题
3、不同SqlSession之间的缓存数据是隔离的,即一个SqlSession中的缓存数据在另一个SqlSession中是读取不到的;查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会再从数据库查询;3、同一个SqlSession两次查询期间执行了任何一次增删改操作;4、同一个SqlSession两次查询期间手动清空了缓存;执行 sql 查询到的数据将缓存到相同的二级缓存区域中;1、不同的SqlSession对应不同的一级缓存;,但可以调用SqlSession的。级别的缓存, 通过同一个。原创 2024-03-03 16:56:13 · 390 阅读 · 0 评论 -
Java线程池及Thread相关问题
在使用线程池的时候,可能由于线程没有结束,ThreadLocalMap对象的 Entry[] 数组中的数据没有被回收,内存没有释放,那么当线程执行大量数据时,可能导致内存溢出,数据泄露。比如任务B,它需要等待任务A执行之后才能执行,任务C需要等待任务B执行之后才能执行;,当核心线程全部繁忙且任务队列存满之后,线程池会临时追加线程,直到总线程数达到。,当核心线程全部繁忙时,任务存放到该任务队列中,等待被核心线程来执行;允许核心线程超时销毁;,用于创建线程,一般采用默认的线程工厂即可,也可以自定义实现;原创 2024-03-03 16:20:12 · 786 阅读 · 0 评论 -
RabbitMQ相关问题
死信队列即DLX,全称为,翻译为:死信交换机。当一个消息在队列中变成死信 (dead message) 之后,它能被重新发送到另外一个交换机中,这个交换机就是DLX,绑定到DLX的队列就称为死信队列;死信队列本身也是一个普通的消息队列,可以通过设置一些参数将其设置为死信队列;死信队列是一个用于存放无法被消费的消息的队列,这些消息被称为死信,死信队列可以避免消息一直被消费却无法消费成功的情况;延迟队列是用来存放“延迟消息”的队列;原创 2024-03-03 15:27:01 · 1191 阅读 · 0 评论 -
Spring框架相关问题
3、如果 Bean 对象中需要定义可变成员变量,将可变成员变量保存在。如果采用Spring默认的事务回滚规则,它默认是发生。8、将创建好的 Bean 对象放入一个 Map 中;9、业务中使用 Bean 对象就从 Map 中获取;2、在 Bean 对象中避免定义可变的成员变量;当执行发生异常的时候,触发Spring事务回滚。1、解析 xml 配置或者注解的类,得到。异常,那不会触发Spring事务回滚;的初始化后方法,此处会进行 AOP;异常事务回滚,需要指定回滚的规则;单例的 Bean 的改为。原创 2024-03-03 14:05:25 · 756 阅读 · 0 评论 -
Redis应用场景
多线程环境下,如果同时有多个线程对数据库中的数据进行修改,没有锁的情况下,如果线程1和线程2同时获取到数据库中的库存数据为一个,并且需要对库中的库存数据进行减一的操作,其实数据库中的数据只有一个,但是两个线程同时能看到有一个库存数据,这样就会导致,库存量与需要出库的数据量不一致的问题。锁,即在多线程环境下,对共享资源的访问造成的线程安全问题,通过锁的机制来实现资源访问互斥;1、在某一个时刻,大量的key或者整个缓存的数据全部过期了,然后瞬间所有的请求都落到数据库,数据库被压垮;几次入锁就需要几次释放锁。原创 2024-03-02 16:22:14 · 885 阅读 · 0 评论 -
Windows设置开机自启
步骤:开始 -> 运行 -> gpedit.msc -> 计算机配置 -> Windows设置 -> 脚本(启动/关机)。切记一定是原脚本的快捷方式,不是原脚本。亦或者是自己写一个自启动脚本,路径指向原服务位置。2)如果建错了或者需要修改,这时需要先删除服务,再重新创建。1)binPath=后面一定要有个空格,否则会出现错误。注:命令行需要管理员模式启动。注:需要先写好bat脚本。原创 2023-10-17 17:50:08 · 3255 阅读 · 2 评论 -
Java开发中List数据量大,需要分片批次处理
在开发过程中可能会遇到需要处理的List数据量过大,可以选择分批处理的方式对大量数据进行处理。原创 2023-10-13 17:30:05 · 2395 阅读 · 0 评论 -
SpringBoot框架实现简单定时任务
@Scheduled 参数有三种定时的设置,第一种是 cron="*/10 * * * * ?",第二种是 fixedRate = 10000,第三种是 fixedDelay = 10000,三种都可表示每10秒执行一次任务。原创 2023-10-13 17:00:43 · 371 阅读 · 0 评论 -
Java日期格式校验、格式化、工具类
如获取2022-02-02所在季度的最后一天/*** 获取入参所在季度的最后一天* @return*/public static Date getQuarterEnd(Date date) { // 季度结束//计算季度数:由于月份从0开始,即1月份的Calendar.MONTH值为0,所以计算季度的第三个月份只需 月份 / 3 * 3 + 2。原创 2023-10-13 16:17:17 · 4908 阅读 · 0 评论 -
Mysql按照中文首字母排序
数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法。原创 2023-10-13 15:10:52 · 1516 阅读 · 0 评论 -
免费获取天气预报的API接口(Json格式)
当需要获取某个城市天气数据json时候,需要传入一个城市代码编码作为入参,地址: [http://t.weather.itboy.net/api/weather/city/](http://t.weather.itboy.net/api/weather/city/)xxxxx ,其中xxxxx即为城市代码。原创 2023-10-13 14:51:19 · 18397 阅读 · 2 评论 -
MySQL 如何获取行号
在MySQL中,我们可以使用变量或内置函数来获取每行数据的行号。使用变量的方法可以适用于MySQL中的大多数版本,而使用内置函数的方法可以在MySQL版本8.0.2及以上使用。参考原文:https://deepinout.com/mysql/mysql-questions/202_mysql_is_there_a_way_to_get_the_row_number_in_mysql_like_the_rownum_in_oracle.html#ftoc-heading-5。原创 2023-08-29 17:14:17 · 8251 阅读 · 2 评论 -
MyBatis中CDATA的作用
在XML文档的解析过程中,首先查找元素的起始符,即字符"原创 2023-08-29 16:55:47 · 5080 阅读 · 0 评论 -
nodepad++ 插件的安装
1、首先下载最新的 64位【https://notepad-plus.en.softonic.com/】2、notepad++ 64位的的下载和安装【https://github.com/bruderstein/nppPluginManager/releases】解压下载的压缩包,将得到的两个文件夹中的文件覆盖到自己电脑中notepad++的安装路径下。3、 插件的下载和安装【https://github.com/pnedev/comparePlus/releases/tag/v2.0.2】解压下原创 2023-08-29 15:43:52 · 1869 阅读 · 0 评论 -
Mybatis嵌套查询(一对多)
【代码】Mybatis嵌套查询(一对多)原创 2023-08-03 14:16:31 · 1563 阅读 · 0 评论 -
海康NVR设备上传人脸图片到人脸库
海康NVR设备上传人脸图片到人脸库定义SDK接口:测试登录批量获取人脸库信息创建人脸库上传人脸图片到人脸库完整代码海康开放平台——海康文档链接——海康开发包和文档下载链接硬件:海康超脑NVR(全称Network Video Recorder,即网络视频录像机)、人脸摄像机。环境:JDK_1.8 Windows 64位 jna.jar版本为3.0.9<dependency> <groupId>net.java.dev.jna</groupId>原创 2022-02-07 15:22:54 · 4352 阅读 · 2 评论 -
用DBeaver进行数据备份与恢复
DBeaver数据备份与恢复原创 2023-07-31 17:10:02 · 13435 阅读 · 7 评论 -
分布式锁框架-Redisson
Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。原创 2023-06-01 23:12:09 · 762 阅读 · 0 评论 -
Redis
Redis就是一个用C语言开发的、基于内存结构进行键值对数据存储的、高性能的、非关系型NoSQL数据库。原创 2023-05-30 22:42:26 · 685 阅读 · 0 评论 -
IDEA:手动添加jar包到Maven本地库
IDEA安装位置:语法:mvn install:install-file -Dfile=jar包的位置(参数一) -DgroupId=groupId(参数二) -DartifactId=artifactId(参数三) -Dversion=version(参数四) -Dpackaging=jar实例:install:install-file -Dfile=E:\roc-common-0.0.1-SNAPSHOT.jar -DgroupId=com.roc - DartifactId=roc-comm原创 2022-02-22 16:29:55 · 455 阅读 · 0 评论 -
SpringBoot实现UDP监听
Springboot实现UDP监听原创 2021-12-15 20:58:32 · 1483 阅读 · 0 评论 -
SpringBoot+Spring Security+JWT(三更草堂)
Springsecurity是Spring家族中的一个安全管理框架。相比与另外一个安全框架shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。—般Web应用的需要进行认证和授权。认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户授权:经过认证后判断当前用户是否有权限进行某个操作而认证和授权也是SpringSecurity作为安全框架的核心功能。原创 2022-09-12 19:38:44 · 7155 阅读 · 5 评论 -
Java设计模式
Gof 23 种设计模式 及 UML(Unified Modeling Language,统一建模语言)链接: http://c.biancheng.net/design_pattern/原创 2021-11-25 10:40:24 · 414 阅读 · 0 评论 -
Netty学习笔记(一)
👍Netty的官网Netty 是由 JBOSS 提供的一个 java 开源框架,现为 Github 上的独立项目。Netty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 是一个 NIO 客户端服务器框架,它支持协议服务器和客户端等网络应用程序的快速、简便开发。它极大地简化了网络编程,如 TCP 和 UDP 套接字服务器。原创 2022-10-02 12:00:27 · 485 阅读 · 0 评论 -
IDEA修改SVN地址
IDEA修改SVN地址 SVN地址改变了,在IDEA上的项目地址还没有修改 第一步:选中项目,右键Subversion --> Relocate第二步:From URL路径保持不变(修改To URL为最新路径)第三步:选中项目,右键Subversion --> Update Directory第四步:勾选Update修改URL为最新的即可SVN地址改变了,在IDEA上的项目地址还没有修改原创 2022-03-10 09:56:07 · 7515 阅读 · 0 评论 -
POI与EasyExcel
POI及EasyExcel一、介绍1、常用场景2、Apache POI2、easyExcel二、POI-Excel写1、创建项目2、大文件写HSSF 033、大文件写XSSF 074、大文件写SXSSF三、POI-Execl读1、03/072、获取不同的数据类型3、公式计算四、EsayExcel1、导入依赖2、写入测试3、读取测试一、介绍1、常用场景将信息导出为excel表格(导出数据)将Excel表中的信息录入到网站的数据库(数据的导入)操作Excel目前比较流行的是 Apache POI原创 2021-06-22 12:15:39 · 188 阅读 · 0 评论 -
Git的使用
Git版本控制1. 什么是版本控制(版本迭代)2. 常见的版本控制工具3. 版本控制分类4. Git与SVN的主要区别Git历史Git环境配置1. 软件下载2. 启动Git3. 常用的Linux命令4. Git配置5. 设置用户名与邮箱(用户标识,必要)Git基本理论(核心)1. 三个区域2. 工作流程Git项目搭建1. 创建工作目录与常用指令2. 本地仓库搭建3. 克隆远程仓库Git文件操作1. 文件的四种状态2. 查看文件状态3. 忽略文件使用码云IDEA中集成GitGit分支版本控制1. 什么是版原创 2021-04-11 23:26:06 · 49 阅读 · 1 评论