自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【分享】Java Helper 与 Utility 类的区别

Utility类是一种实用工具类,它包含一组静态方法,目的是提供常用的实用方法,例如字符串处理、日期处理、文件操作等。通常,它不应该被实例化,因为不需要其状态,而是通过调用静态方法来使用其中的功能。Utility类通常作为工具库或框架的一部分提供给开发人员使用。Java Helper 和 Utility 类都是为了帮助程序员编写更加高效、可维护的代码而设计的,但它们之间有一些区别。

2023-11-29 19:18:57 1593

原创 【分享】Java Builder 建造者模式之案例分享

建造者模式(Builder)核心目的是通过使用多个简单对象一步步构建出一个复杂对象。通过将复杂对象的构造过程拆分为多个简单的步骤,使得创建对象更加灵活,可读性和可维护性更强。

2023-11-23 16:07:48 597

原创 【分享】Redis的持久化策略(RDB和AOF)和适用场景

AOF持久化是将Redis中的所有写命令以追加方式写入一个文件中。在Redis配置文件中设置AOF文件的保存方式,可以实现自动保存,也可以通过命令手动创建AOF文件。RDB持久化是将Redis中的数据保存到一个二进制文件中。可以在Redis配置文件中设置保存RDB文件的时间间隔,以实现自动保存。可以手动触发RDB快照或者通过设置定时快照的方式自动触发快照操作。以上命令可以关闭持久化,也可以通过修改参数来切换持久化策略。RDB持久化是将内存中的数据快照保存到。使用RDB和AOF两种持久化方式。

2023-07-17 15:44:29 662

原创 【分享】Redis的五种基本数据类型和应用场景

以上五种基本数据类型的特点及方法使用各有不同,可以根据具体需求进行选择。

2023-07-15 11:41:50 1998

原创 【分享】RSA非对称加密算法,你真的懂了吗?

RSA算法是一种公钥加密(非对称加密算法)算法,它的名称是由发明者的三个姓氏的首字母组成的(Ron Rivest, Adi Shamir, Leonard Adleman)。RSA算法的基本原理是利用两个大素数的乘积作为密钥,其中一个作为,另一个作为。公钥可以公开,任何人都可以使用它来加密消息,但只有私钥持有者才能解密密文。RSA算法的加密过程是将明文按照一定规则转换为数字,然后通过公钥乘以这个数字得到密文。解密过程是通过私钥将密文乘以另一个数字,然后再按照一定规则将得到的结果转换为明文。

2023-07-13 19:04:49 560

原创 【分享】什么是Hash Algorithm(哈希算法),你真的懂了吗?

哈希算法(Hash Algorithm)也称为、摘要函数,是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。哈希算法可以将任意长度的输入(也称为消息、明文)通过散列运算,转换为固定长度的输出(也称为散列值、哈希值、摘要)。常见的哈希算法有MD5、SHA-1、SHA-2等,它们被广泛应用于数字签名、数据完整性校验、密码学等领域。哈希算法有很多应用场景,如文件完整性校验、密码存储、数字签名等。

2023-06-29 08:39:37 1334

原创 【分享】PostgreSQL创建自增序列、查询序列、使用序列

【代码】【分享】PostgreSQL创建自增序列、查询序列、使用序列。

2023-06-13 20:03:47 5859

原创 【分享】微服务合并之多数据源整合(Dynamic Datasource)和Flyway对多数据源进行数据库脚本管理

在工作中,我们使用**Flyway**对数据库进行版本管理,每个微服务都有各自的数据库。最近我们需要对三个微服务合并成一个服务,且保留数据库不合并,有以下改动要求: 1. 在不影响功能正常使用的情况下对代码结构尽量改动小 2. 尽可能短的开发周期 3. “分久必合,合久必分”,方便后面对服务的拆分- 三个工程包合并成一个大包,可以通过具体的子包名区分以前的三个服务 - Flyway脚本分开管理,单独作用在三个文件夹对应以前三个工程 - 引入多数据源(Dynami

2023-05-09 19:16:15 1751 2

原创 【分享】Mysql、SqlServer、Oracle、PostgreSQL、ClickHouse和PrestoDB获取元数据(表、字段信息)SQL

工作中做数据同步的过程中,经常要获取表信息、表字段等元数据,做SQL解析,故整理一下常用的数据库获取元数据的SQL这里的元数据指的是数据库内描述数据表和表字段信息的“身份证”元数据表结构定义TableMetadata元数据字段结构定义ColumnMetadata。

2023-04-07 11:34:06 1117

原创 【分享】时间国际化落地和经验分享

显示时间跟存储时间分离前端通过用户当地时区转换时间戳后端定时任务直接用时间戳服务直接交互用时间戳/时区和时间。

2023-04-06 13:44:59 1179

原创 【强烈推荐】音频文件免费批量一键格式转换好工具——酷狗音乐

最近买了一个U盘,想把偶像JAY的歌曲拷贝到U盘里面,放到车里听,类似车载U盘。但是我的歌曲格式是无损FLAC格式的,车载系统对FLAC格式的音乐兼容性不好,一首歌没听多久就解析失败放下一首了,类似试听5分钟的感觉。

2023-03-24 00:14:49 1609

原创 【分享】Java线程池的4种拒绝策略

要根据具体的场景需求,采取合适的策略降低资源消耗:通过重复利用已创建的线程降低创建/销毁线程的消耗提高响应速度:当任务来时,不用等线程创建,直接通过线程池已创建的线程直接执行便于管理:线程池可以统一分配,方便调优和监控线程。

2023-02-24 12:52:08 336

原创 【分享】Git rebase/merge介绍

如何将两个分支合并到一起。就是说我们新建一个分支,在其上开发某个新功能,开发完成后再合并回主线。

2023-02-22 12:15:01 756

原创 【分享】Mac for Maven安装及配置

Maven 是一个项目管理工具,可以对 Java 项目进行自动化的构建和依赖管理。Maven 可以看成知识的积累者,最初是为了简化 Jakarta Turbine 项目中的构建过程。有几个项目,每个项目都有自己的 Ant 构建文件,它们都略有不同。JAR 被检入 CVS。我们想要一种标准的方式来构建项目,清楚地定义项目的组成,发布项目信息的简单方法,以及在多个项目之间共享 JAR 的方法。结果是现在可以用于构建和管理任何基于 Java 的项目的工具。

2023-02-15 10:57:20 5753 2

原创 【分享】Java集合求交集、并集、差集

之前遇到一个长得很有趣的面试官问`两个集合怎么求他们的交集、并集、茶集`,回答之后觉得非常有意思,在这里记录一下:

2023-01-10 14:18:29 3093

原创 【分享】mysql范围查询结果不存在的时候返回特定的结果

查询存档可能不存在的时候返回特定的结果,这里将需要匹配的存档uuid作为。Mybatis可以动态拼接UNION ALL的sql。创建存档信息表:save_file_info。

2023-01-10 09:27:24 1267

原创 【分享】Mybatis-plus多租户插件实现数据隔离方案分享

多租户:多租户技术又称多重租赁技术,是一种软件即服务的软件服务架构(简称SaaS)。同一个系统开放给多个组织/用户使用,每个组织/用户需要进行数据隔离,并且每个组织/用户可以自定义自己租用系统的个性化配置。使用多重租赁技术还有PaaS,IaaS等。

2022-12-14 15:41:47 4278

原创 【警告】别被我看到你再这样用Redis!!!

本文讲述的是Redis使用过程中,往往容易出问题的场景案例,这里的🌟星级一共10个,星级越多,危险系数越大!!!引发问题:每次单个获取缓存都是⼀次和Redis的IO消耗,当需要遍历的数量多了,会导致该请求响应。解决⽅法:使⽤MGET进⾏批量获取缓存使⽤了批量命令代替单个命令后,可以减少客户端、服务端来回⽹络的IO次数,提升接⼝性能。(2)过期时间丢失 (危险系数:🌟🌟)测试代码中第一次设置key和设置5分钟的有效时间,第二次再对这个key修改值但是不设置过期时间引发问题:会导致该key对缓

2022-12-08 09:57:13 275

原创 【教程】ServiceComb安装和配置

Apache ServiceComb 提供了融合开源生态的一站式微服务开源解决方案,致力于帮助企业、用户和开发者将应用轻松微服务化上云,实现对微服务应用的高效运维管理。

2022-10-25 14:48:25 1824 1

原创 设计模式(三):策略模式(Strategy)案例分享

策略模式非常实用,可以替换很多if else,比如上面代码如果要用if else 实现那么可能要写3个判断执行对应方法使用策略模式可以提高代码可读性,方便后面随着业务扩展,代码不断调整//spring会将实现同一策略接口的所有策略实现类放到map @Autowired private Map < String , FolderDragStrategy > folderDragStrategyMap;} } }

2022-09-25 23:34:20 566

原创 【分享】草稿箱多版本功能设计

每次发布这里使用到COW(copy to write)写时拷贝的思想,发布的时候拷贝副本作为上一个版本的快照,方便切换版本的操作。还有一种是ROW(redirect to write)写时重定向,记录报表操作的变更,每次读取的时候指向新的版本也可以。具体看实际场景,我这边目前是写少读多用COW读取非常快。...

2022-08-19 09:29:35 1550

原创 【笔记】Logstash环境搭建和安装配置

Logstash是ElasticStack的中央数据流引擎,用于收集、丰富和统一所有数据,而不管格式或模式。当与Elasticsearch,Kibana,及Beats共同使用的时候便会拥有特别强大的实时处理能力。在这段视频中,Elastic技术布道师曾勇将会对如何开始Logstash进行了概述和演示。Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。...

2022-07-18 19:27:22 1489

原创 【笔记】Kibana安装并结合Elasticsearch使用

Kibana 是一种数据可视化和挖掘工具,可以用于日志和时间序列分析、应用程序监控和运营智能使用案例。它提供了强大且易用的功能,例如直方图、线形图、饼图、热图和内置的地理空间支持。此外,它还提供了与 Elasticsearch 的紧密集成,后者是一款流行的分析和搜索引擎,这使得 Kibana 成为了可视化 Elasticsearch 中存储数据的默认之选。官网下载地址历史版本下载直接解压即可:解压之后文件结构如下修改config目录下的kibana.yml运行bin目录下的kibanankib

2022-07-13 16:53:39 977

原创 【笔记】ElasticSearch环境搭建和配置

ES(全称:ElasticSearch),是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速、近乎实时地存储、搜索和分析大量数据。它通常用作支持具有复杂搜索功能和要求的应用程序的底层引擎/技术。以下是 Elasticsearch 可用于的一些示例用例:ES版本兼容说明官网下载地址国内ES中文社区下载地址使用brew下载并安装ES安装ES:使用brew安装elasticsearch之后文件目录如下:默认端口:9200下一节将结合Kibana仪表盘可视化的使用...

2022-07-12 11:23:54 365

原创 【源码学习】JAVA使用JDBC获取元数据的过程

JAVA在平时连接关系型数据库的时候,一般都是使用JDBC的方式连接的,但是怎么获取到库表结构你真的懂了吗?JDBC全称叫Java DataBase Connectivity),可以理解为是一种执行SQL语句的JAVA API。主要用来对常用的数据库系统连接交互。API主要由以下组成user表结构如下:USER_ADDR地址表结构如下示例代码:运行结果:获取元数据成功在上文示例中,JDBC连接MYSQL通过information_schema数据库下的schema、table、column表存

2022-07-08 19:45:59 1457

原创 【笔记】Mac搭建Hadoop环境和配置

进入hadoop目录,在里面创建以下目录配置hadoop的环境变量进入hadoop目录下的/etc/hadoop/里面寻找和配置JAVA JDK修改节点配置:主要改hostname修改:主要改hostname修改:主要是改hostname启动hadoop:在hadoop/bin目录下执行,启动hdfs切换到hadoop/sbin/下,执行以下命令master主节点启动,我这里只有一台机器看不到集群的效果.........

2022-07-08 15:53:15 1575

原创 【笔记】Springboot自定义starter项目实践

springboot工程一般都是通过入口类Application启动项目,根据对应目录下的xml、yml、注解等配置文件初始化相关的配置和实例化相关的bean放入IOC容器进行管理(),还会将依赖的starter的相关bean实例化放入容器进行统一管理()。在工作中使用微服务架构,以前DAO持久层使用的是mybatis在很多微服务模块都有独立引入mybatis的依赖,时间久了出现mybatis在不同微服务版本不一致导致的兼容性问题。现在有时间我就将DAO层相关依赖抽离并封装成一个starter给各个微服务依

2022-07-05 11:16:47 240

原创 【问题】使用gradle依赖管理jar包的缓存问题

在项目中我们使用gradle作为依赖管理,开发的过程中在模块A调用模块B,经常发现自己模块快照包,打出来的包在B模块中拉取不到最新的代码,但是加压A模块的jar发现是刚刚改动最新的jar,B模块多拉取几次都是这样,就像有缓存一样,这是怎么回事呢?方法二:命令行强制清除缓存 ()方法三: 删除对应的gradle/caches文件()...

2022-06-14 00:46:31 2215

原创 【笔记】MyBatis 大于等于小于等于常用写法

前言经常在工作中使用mybatis范围筛选的时候忘记大于等于小于怎么写,这里做记录分享给有需要的人。方法一:使用转义字符含义原符号转义字符小于<&lt;小于等于<=&lt;=大于>&gt;大于等于>=&gt;=逻辑与(和)&&amp;单引号‘&apos;双引号“&quot;使用示例# 查询用户创建时间是小于一月一号SE

2022-05-27 00:56:03 19956 6

原创 【笔记】DDD领域驱动设计精粹——浅谈DDD

项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes,

2022-05-09 01:02:54 736

原创 【笔记】学习深度优先遍历(DFS)和广度优先遍历(BFS)

前言:最近在项目中开发了一个组织树的功能,正好使用了深度优先遍历和广度优先遍历进行结点遍历,觉得非常有意思这里做一下笔记记录一下。提示:部门表设计可以查看以下链接:MYSQL8使用CTE实现递归遍历深度优先遍历(DFS)定义:深度优先遍历全称叫Depth First Search(简称DFS),例如查询一棵树从顶级节点往下找所有子节点,深度优先遍历会一条路走到底,直到遇到“死胡同”才会返回到i上一节点(回溯),如果上一节点没有其他路可以探索,则会继续原路返回探索别的路线,直到遍历完最后退出。

2022-05-03 18:26:17 423

原创 【笔记】MYSQL8新功能CTE(公共表表达式)优雅实现递归查询

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代.

2022-04-28 00:43:30 3350 2

原创 【笔记】try catch优雅处理关闭数据库连接对象

try catch 使用场景:回顾:工作中需要捕获处理异常的场景:例如:项目场景:自定义封装的JDBC连接方式中,创建数据库连接对象Connection用于业务CRUD,每次使用完需要关闭数据库连接对象Connection的close()方法;常用写法注意:关闭流的地方在finally,因为代码最终一定会到finally:为了复现业务代码出现的异常,这里使用除零异常public class MainTest { public static void main(String[] arg

2022-04-09 00:50:14 2418

原创 LRU缓存算法的一种实现

LRU算法:LRU(Least Recently Used)今天在缓存内存淘汰策略中看到,觉得非常有意思,这里做一下笔记,不喜互喷。LRU原理:当数据在最近一段时间内不常被访问,在缓存定义的内存容量超过限制的时候,会将这部分数据淘汰掉;相反一段经常被访问的数据,说明这部分数据以后有很大可能也会被访问,需要快速匹配上这部分数据,也就是按频率决定存储的先后位置,方便快速查找高频数据和在空间不足的情况下删除低频数据,释放空间。图片来自: https://baijiahao.baidu.com/s?id=

2022-02-16 20:49:30 311

原创 扩展:Spring中的观察者模式(事件监听机制)

Spring观察者模式1、ApplicationContext事件机制是观察者设计模式的具体实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext事件处理。2、如果容器中由一个ApplicationListener Bean,当ApplicationContext发布ApplicationEvent时,ApplicationListener Bean会自动触发,这种事件机制需要程序显示的触发,3、其中Spring有一些内置

2022-02-03 17:48:13 1531

原创 设计模式(二):观察者模式

定义:对象之间存在一对一或者一对多依赖,当一个对象改变状态,依赖它的对象会受到通知并自动更新。提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录定义:前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pand

2022-01-31 21:54:57 634

原创 设计模式(一):单例模式

单例模式特点:1.单例模式只能有一个实例2.单例类必须自己创建自己的唯一实例3,单例类对外部其他对象必须提供同一实例例如:饿汉式单例模式定义一个单例类SingleEHanModel (饿汉式),饿汉式:类加载的过程中,会将单例对象仅且一次实例化public class SingleEHanModel { //TODO 1.整个应用程序只能有1个实例 private static SingleEHanModel instance = new SingleEHanModel();

2022-01-27 14:45:01 211

原创 Java面试Spring的失败集(二)

@Autowired和@Resourse的区别据我所知,@Autowired跟@Resourse都是bean注入的时候使用的,可以自动装填好bean对象,方便我们使用。到底@Autowired和@Resourse有什么区别呢?今天被面试官问到我感觉蒙了,一时回答不上来,菜是原罪,回来后我赶紧百度补回来知识。直接上图:区别一:@Resourse的依赖包并不是Spring的包,他的包是...

2019-10-29 20:47:00 127

原创 Java面试Spring的失败集(一)

问题一:Spring框架中自动填充注解@Autowired是什么时候装填好对象?我的思考:刚学Spring框架@Autowired的时候只知道他可以不用Setter注入属性就可以完成属性的自动装填,答案无非就两种:1.用到该属性的时候装填(X)2.容器启动的时候就已经装填完毕(✔)答案:其实当spring容器启动的时候,AutowiredAnnotationBeanPostProcess...

2019-10-28 19:48:44 144

原创 学习JAVA虚拟机的内存区域(一)

JVM的内存区域

2019-10-26 11:34:58 115

分享微服务合并之多数据源整合(Dynamic Datasource)和Flyway对多数据源进行数据库脚本管理DEMO

【分享】微服务合并之多数据源整合(Dynamic Datasource)和Flyway对多数据源进行数据库脚本管理

2023-05-09

老大看见你这样用Redis会揍你

记录项目使用Redis过程中踩到的坑分享给大家引以为戒 配合我的博客一起看效果更佳哦! https://blog.youkuaiyun.com/weixin_42380504/article/details/128204262

2022-12-29

空空如也

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

TA关注的人

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