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

原创 Redis消息队列

所谓解耦,举一个生活中的例子就是:快递员(生产者)把快递放到快递柜里边(Message Queue)去,我们(消费者)从快递柜里边去拿东西,这就是一个异步,如果耦合,那么这个快递员相当于直接把快递交给你,这事固然好,但是万一你不在家,那么快递员就会一直等你,这就浪费了快递员的时间,所以这种思想在我们日常开发中,是非常有必要的。注意:当我们指定起始ID为$时,代表读取最新的消息,如果我们处理一条消息的过程中,又有超过1条以上的消息到达队列,则下次获取时也只能获取到最新的一条,会出现漏读消息的问题。

2024-05-24 10:19:07 1010

原创 Mybatis 源码分析

1. 手写持久层框架-ipersistent1.1 JDBC操作数据库_问题分析JDBC API 允许应用程序访问任何形式的表格数据,特别是存储在关系数据库中的数据代码示例:1.2 JDBC问题分析&解决思路剖开代码,逐个分析:(1)加载驱动,获取链接:存在问题1:数据库配置信息存在硬编码问题。存在问题2:频繁创建、释放数据库连接问题。(2)定义sql、设置参数、执行查询:存在问题3:SQL语句、设置参数、获取结果集参数均存在硬编码问题 。(2)遍历查询结果集:存在问题4:手动封装返回结果集,较为繁

2024-05-08 12:08:30 863

原创 黑马微服务常见面试题

这个题目主要考察对SpringCloud的组件基本了解:简单SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:•注册中心组件:Eureka、Nacos等•负载均衡组件:Ribbon•远程调用组件:OpenFeign•网关组件:Zuul、Gateway•服务保护组件:Hystrix、Sentinel•服务配置管理组件:SpringCloudConfig、Nacos。

2024-03-06 08:55:53 1162 1

原创 RabbitMQ基础

多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列Direct交换机根据RoutingKey判断路由给哪个队列。

2024-03-06 08:47:32 887

原创 RabbitMQ 高级

每个只能配置一个,因此我们可以在配置类中统一设置。我们在publisher模块定义一个配置类:log . error("触发return callback,");} });} }log . error("触发return callback,");} });} }Slf4j;import orglog . error("触发return callback,");} });} }

2024-03-05 15:56:38 1126

原创 filebeat 后端运行,自动退出解决

通过nohub方式启动filebeat,运行一段时间后filebeat自动退出,原因是filebeat默认会定期检测文件是否有新的内容,如果超过一定时间检测的文件没有任务新日志写入,那么filebeat会自动退出,解决办法就是将filebeat通过系统后台的方式长期运行。

2023-12-12 14:42:55 843

原创 Java 调用 GitLabAPI 获取仓库里的文件件 提交记录

自定义令牌是为了后续接口访问有权限而建立的。在任何页面的右上角,单击您的个人资料照片,然后单击 “Settings(设置)”。在左侧边栏中,单击 “Developer settings(开发者设置)”。在左侧边栏中,单击 “Personal access tokens(个人访问令牌)”。单击 “Generate new token(生成新令牌)”。给令牌一个描述性名称。选择要授予此令牌的作用域或权限。要使用令牌从命令行访问仓库,请选择 “repo(仓库)”。

2023-09-20 09:42:27 1704

原创 VUE Element UI 排序功能结合后端接口实现

要求在页面列表上点击某个列的排序按钮,能够联动后端接口一起排序分页。上述JS仅仅提供的是排序相关代码,其他代码自行补充。所以 后端代码就知道该怎么写了吧。对你有帮助给点个👍再走呗。若有错误,希望大佬指出。废话不多说,直接上代码。

2023-09-20 09:12:26 772

原创 Redis缓存击穿问题及解决思路

缓存击穿也叫热点key问题,就是一个被高并发访问并且缓存重建业务比较复杂的key突然失效了,无数的请求会在一瞬间给数据库带来巨大的冲击。也是缓存雪崩中的一个特例。

2022-08-25 11:09:55 984 2

原创 Redis缓存雪崩问题及解决思路

在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。

2022-08-24 16:43:06 384

原创 Redis缓存穿透问题的解决思路

缓存穿透是指客户端请求的数据在缓冲中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库中。缓存穿透产生的原因是什么?用户请求的数据在缓存中和数据库中都不存在,不断发起这样的请求,给数据库带来巨大压力缓存穿透的解决方案有哪些?缓存null值布隆过滤增强id的复杂度,避免被猜测id规律做好数据的基础格式校验加强用户权限校验做好热点参数的限流黑马Redis资料。若有错误,希望大佬指出。对你有帮助给点个👍再走呗。

2022-08-24 10:34:49 321

原创 ArrayList扩容机制分析

ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于,实现了这些接口。}.}.}RandomAccess是一个标志接口,表明实现这个这个接口的List集合是支持快速随机访问的。在ArrayList中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。............

2022-07-20 11:12:22 443 1

原创 Git 命令之stash

git命令之stash

2022-06-10 10:27:09 10481 2

原创 单例模式的六种写法

单例(Singleton)Intent确保一个类只有一个实例,并提供该实例的全局访问点。Class Diagram使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。ImplementationⅠ 懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。这

2022-04-26 22:13:34 112

原创 Spring动态代理的两种方式

Spring动态代理的两种方式1. Spring创建的动态代理类在哪⾥?1.1 什么叫动态字节码技术?2.1. Spring创建的动态代理类在哪⾥?Spring 框架在运行时,通过字节码技术,在jvm创建的,运营在jvm内部,等程序结束后,会和jvm一起消失。1.1 什么叫动态字节码技术?通过第三方动态字节码框架,在jvm中创建对应类的字节码,进而创建对象,当虚拟机结束,动态字节码跟着消失。==结论:动态代理不需要定义类文件,都是在jvm运行过程中创建的,所以不会造成静态代理,类文件数量过多,影

2022-04-26 22:06:27 4062 2

原创 Struts2升级2.5.30的那些坑

1.版本修改将pom.xml 文件修改为2.5.30版本<properties> <struts2-version>2.5.30</struts2-version> </properties><dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>s

2022-04-18 15:42:51 9631 35

原创 Spring⼯⼚创建复杂对象3种方式(FactoryBean,实例工厂,静态工厂)

Spring⼯⼚创建复杂对象3种方式1. 什么是复杂对象2. Spring⼯⼚创建复杂对象3种方式2.1FactoryBean 接口2.2 实例工厂2.3静态工厂1. 什么是复杂对象1.简单对象:指的就是可以 直接通过new 构造方法创建对象例如: userDAO User2.复杂对象指不能直接通过new 构造方法创建对象例如: Connection SqlSesscionFactory2. Spring⼯⼚创建复杂对象3种方式2.1FactoryBean 接口开发步骤1.实

2022-04-18 11:45:03 459

原创 Apache Struts2远程代码执行漏洞(CVE-2021-31805)安全通告

1. 事件描述监测发现,开源应用框架Apache Struts存在远程代码执行漏洞(CVE-2021-31805),攻击者可构造恶意的OGNL表达式触发漏洞,实现远程代码执行。受影响版本为Apache Struts 2.0.0~2.5.29。目前,该漏洞已在Apache Struts 2.5.30版本中修复。事件类型:漏洞利用事件等级:高危2. 影响范围远程代码执行漏洞影响范围:2.0.0<=Apache Struts <= 2.5.29不受影响版本Apache Struts

2022-04-15 10:05:09 6478 2

原创 Linux crontab 命令

Linux crontab 命令1.简介2.语法3. 示例4. 脚本无法执行问题5. 实战6.彩蛋1.简介Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。而 linux 任务调度的工作主要分为以下两类:系统执行的工作:系统周期性所要执行

2022-04-13 15:01:41 1683

转载 初学者对java数组中栈和堆的认识

java数组中栈和堆的认识1.示例:2.结论3.图例子1.示例:public static void main(String[] args) { String[] Array = null; Array = new String[3]; Array[0] = "安徽合肥"; Array[1] = "江苏苏州"; Array[2] = "安徽铜陵"; for(int i=0;i<=2;i++){

2022-03-02 14:37:36 98

原创 MySQL 动态 行转列

MySQL 动态 行转列1.需求2.建表3.插入数据4. 转换前结果5. 动态转换1.需求在每一行的内容不确定的情况下,需要动态的把行转为列。2.建表DROP TABLE IF EXISTS tb_score;CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NOT NULL COMMENT '用户id', subject VARCHAR(20) COMMENT '科

2022-02-24 17:05:56 6306 8

原创 HashMap 集合底层 存储数据的过程 + 面试题

一、HashMap 集合简介HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的 key、value 都可以为 null,此外,HashMap 中的映射不是有序的。jdk1.8 之前 HashMap 由 数组 + 链表 组成,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突(两个对象调用的 hashCode 方法计算的哈希值一致导致计算的教组索引值相同)而存在的(

2021-12-17 17:15:51 723 2

原创 mysql 之 去重(三行重复数据,取列权重最高行的一行留下)

mysql 之 去重 三行重复数据,取列权重最高行的一行留下 1.需求2. 解决1.需求将图一 数据 加工成 图二的数据图一:图二:IS_SD_CALL/IS_ZB_WOSALE/IS_CBSS 字段下的数字 表示权重,数字越大权重越高,权重最高的那一行留下 ,其他行消除。2. 解决整体解决方案:select x.no ,x.number , case when x.IS_SD_CALL <> '' and x.IS_SD_CALL = '10' then

2021-12-03 10:08:09 869 1

原创 Java JDK8 Stream 使用详解

Stream 的 筛选/去重/截取跳过映射/合并多个流/匹配/归约 简单示例1.什么是流?2.流的特点3.流的操作种类4.流的操作过程5. 使用流1.什么是流?流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。因此,流的集合操作对我们来说是透明的,我

2021-09-28 16:16:25 472

原创 Java 与 C++ 的区别

近期在学习C++,简单介绍下 Java 和 C++区别Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,C++ 为了兼容 C 即支持面向对象也支持面向过程。Java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台。Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。Java 支持自动垃圾回收,而 C++ 需要手动回收。Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。Java

2021-09-27 17:20:58 114

原创 idea插件translation插件 提示:翻译失败: 未知错误

idea插件translation插件“翻译失败: 未知错误”idea插件translation插件 提示:翻译失败: 未知错误解决方案效果图idea插件translation插件 提示:翻译失败: 未知错误问题:translation插件 这两天一直无法进行翻译 提示 翻译失败: 未知错误网上看了很多 改 有道的 百度的 都需要去相应官网申请,比较繁琐,不是想要的效果,下面将会介绍一个简单的方案。解决方案打开idea —》settings —》Tools —》翻译(插件名)把 使用tran

2021-09-18 15:11:51 6718 22

原创 多线程创建 - 通过实现Callable接口创建多线程

通过实现Callable接口创建多线程1.介绍2.具体代码实现3. 使用Callable接口创建多线程 实现一个龟兔赛跑小游戏1.介绍Callabled 接口有点儿像是Runnable 接口的增强版,它以call()方法作为线程执行体, call()方法比run()方法功能更强大。call()方法可以有返回值,可以声明抛出异常类。获取call()方法里的返回值: 通过FutureTask 类(实现Future 接口)的实例对象的get()方法得到,得到结果类型与创建TutureTask 类给的泛型一

2021-09-15 11:09:30 259 1

原创 单例模式的六种写法

单例(Singleton)Intent确保一个类只有一个实例,并提供该实例的全局访问点。Class Diagram使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 ImplementationⅠ 懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。

2021-09-15 10:30:22 122

原创 centos7下(Linux) SFTP的自动 登陆 下载文件 shell脚本

linux下关于SFTP的自动登陆下载文件 .sh脚本编写1.需求2.脚本3.判断文件夹下的文件数量1.需求编写一个shell脚本来自动把某个服务器下的文件下载到本地2.脚本#!/bin/bash# 创建文件夹 来存放文件dir="td_area_tmp"if [ ! -d "$dir" ];thenmkdir $direcho "创建文件夹成功"elseecho "文件夹已经存在"fi# 文件夹创建成功!!# 切换文件目录 cd td_area_tmp# 开始登陆sf

2021-08-30 17:37:39 2883 2

原创 使用html2canvas在前端生成图片并下载

111

2021-07-09 14:52:51 1706 1

原创 如何让div里img图片水平垂直居中--图片垂直居中

1.代码div设置成相对定位,img设置成绝对定位,然后left:50%,top:50%,此时图片的左上角将位于div的中心。重点:图片向上移动图片高度的一半,并向左移动图片宽度的一半。正好为与div正中间。css部分:div{ width: 300px; height: 300px; position: relative; background-color:#000;}img{ width: 100px; height: 100px; position: absolut

2021-06-05 10:47:58 964

原创 记一次行云数据库(CirroData) 分区 创建/修改/添加数据等

1. 需求:公司用到了行云数据库(国产库),属实有点哪个。因为数据量太大,需要进行优化,这里采用的是数据库分区来优化。2. 分区概念:数据分区是一种物理数据库的设计技术,它的目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值,分区的优点如下:1、相对于单个文件系统或是硬盘,分区可以存

2021-03-30 17:54:29 5802 4

原创 解决iframe嵌套 session 不一致问题(session 存不了)

1. 问题描述每次请求向后台携带的sessionID都不一致 ,导致用户权限问题。2.解决修改谷歌浏览器默认配置访问:chrome://flags/#same-site-by-default-cookies修改属性SameSite by default cookies 为disabled

2021-03-30 09:47:35 2932 3

原创 Docker 安装启动与镜像加速器配置(linux下)

1.安装1.1下载docker-ce repo为本地yum 提供远程repo 信息。curl https://download.docker.com/linux/centos/docker-ce.repo -o/etc/yum.repos.d/docker-ce.repo1.2 安装依赖yum install -y https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.

2021-03-25 10:40:53 130

原创 Maven 将本地jar包添加到本地仓库

1.准备maven环境maven版本:3.6.1环境配置:2. 准备jar包比如我要把 yjy.jar 包放入自己的maven仓库3.编写bat脚本call mvn install:install-file -Dfile=lib/yjy.jar -DgroupId=cn.antblog -DartifactId=yjy -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true保存脚本,双击执行即可。注意自己对应自己

2021-03-24 14:39:53 95

原创 Java中使用JDBC连接数据库

记录下 :下面的数据库链接信息 自行修改package com.zyzx.dmccore.test;import java.sql.*;/** * @program: dmc-base * @description: 使用jdbc排查 syntax error, unexpected $undefined #{参数不读取} * @author: 杨敬一 * @create: 2021-03-19 10:52 **/public class JDBCTest {

2021-03-19 11:11:52 947 4

原创 ant-design-vue-pro的table动态列的显示和隐藏

1 . 需求:用户可以动态的选择行和列。上图(已经实现了的效果):图1:图2:2 . 基本思路:大家知道行的选择可以说非常简单,但是列的选择,ant-design-vue中没有集成很好的组件,但是ant-design-proTable中集成了这种组件:https://procomponents.ant.design/components/table/ 有兴趣可以看看。我的大致思路:是把columns动态渲染到表格上单,用户触发checkbox相应的watch会监听到,修改columns中

2021-01-22 10:31:44 7156 5

原创 分布式文件存储FastDFS使用教程(下载安装使用)

分布式文件存储FastDFS1.FastDFS1.1 FastDFS简介1.1.1 FastDFS体系结构1.1.2 上传流程1.2 FastDFS搭建1.2.1 安装FastDFS镜像1.2.2 配置Nginx1.3 文件存储微服务1.3.1 pom.xml依赖1.3.2 FastDFS配置1.3.3 application.yml配置1.3.4 启动类1.4 文件上传1.4.1 文件信息封装1.4.2 文件操作1.4.3 文件上传1.5 Postman测试文件上传1.FastDFS1.1 FastD

2021-01-16 12:05:24 930

原创 java微服务 之 分布式事务 ( SpringCloud Alibaba seata )

java微服务 之 分布式事务 seata1 分布式事务介绍1.1 什么是事务1.2 本地事务1.3 什么是分布式事务1.4 分布式事务应用架构1.4.1 单一服务分布式事务1.4.2 多服务分布式事务1.4.3 多服务多数据源分布式事务1.5 CAP定理2 分布式事务解决方案2.1 基于XA协议的两阶段提交(2PC)2.2 补偿事务(TCC)(3PC)2.3 本地消息表(异步确保)2.4 MQ 事务消息2.5 Seata 2PC->改进2.5.1 Seata介绍3.2 案例实现1 分布式事务

2021-01-14 16:46:43 713

原创 (java)微信公众号开发 之 扫码关注 获取OPPENID 对该OPPENID发送相关的信息

(java)微信公众号开发 之 扫码关注 获取OPPENID 对该OPPENID发送相关的信息因为公司项目需要对接微信公众号平台,所以把自己的笔记整理在此,先写下大概的项目需求,具体操作往下看。项目需求:顾客在我们项目平台提交一个申请,这个填写的申请单中有一个手机号必填。提交完我们会生成一个二维码,该二维码是携带参数(手机号)请求微信公众平台所返回的二维码(要点:1.获取access_token,2.获取Ticket来换取二维码)顾客扫描二维码之后,微信平台会推送消息到我们自己项目.(要点:对微

2021-01-08 11:27:21 1920 6

MessageService.zip

此压缩包中有我文章中所提到的MessageService工具类,大家可以直接复制使用。

2019-08-23

QRCode[jar包][工具类][带注释].zip

QRCode是java用来生成二维码的jar包,里面包括生成工具类,只要你稍微看看,就可以轻松使用。

2019-08-18

java调用佳博条码机tsclib.zip

佳博大部分条码打印机的编程接口包,如 GP-9134T条码打印机其他品牌的TSC系列打印机也可以;内含JAVA,JSP,等语言的样例;内含TSCLib.dll,TSC signed.ocx,TSCLIB.DLL 函数库使用说明.pdf,3120T说明书,GP-9035T手册等

2019-08-18

空空如也

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

TA关注的人

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