自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【经验分享】Java注解实战进阶

*** 允许字符串长度的最大值*/int max();/*** 允许字符串长度的最小值*/int min();/*** 错误消息*/1、注解的定义有点像定义接口interface,但唯一不同的是前面需要加一个符号2、注解的成员变量只能使用基本类型、String或者enum枚举,比如int可以,但Integer这种包装类型就不行,需注意3、像上面@Target@Retention这种加在注解定义上面的注解,我们称为“元注解”

2024-08-16 10:52:54 857

原创 【经验分享】ShardingSphere+Springboot-04:自定义分片算法(COMPLEX/STANDARD)

通过配置分片策略类型和算法类名,实现自定义扩展。掌握自定义类算法就算法完全掌握了分片算法的精髓,可以根据业务需求灵活配置分片规则。类型:CLASS_BASED可配置属性:属性名称数据类型说明strategyString分片策略类型,支持 STANDARD、COMPLEX 或 HINT(不区分大小写)String分片算法全限定名官方文档给出了一个参考案例如下,没有太多的说明,这尝试用自定义分片算法重新实现[3.3.1]中的行表达式分表规则import org} }

2024-08-09 16:28:23 649

原创 【经验分享】ShardingSphere+Springboot-03 : COMPLEX_INLINE 复杂行表达式分片算法

这样看官方文档还是写的不够详细,举个例子,创建一个用户表结构如下,分别是数据源ds1/ds2中分别创建以下两张表。测试一:随机生成用户并插入数据库,打印出来插入对象和预测结果,和实际插入的真实表对比。测试二:查询条件带有user_type和dep_id,测试分表逻辑是否生效。:根据用户类型user_type和部门dep_id进行复杂分库分表。复合分片比较灵活,适合于分片的字段比较多,,使用这种分片的话必须对自己的业务比较明确。

2024-08-09 16:27:09 547

原创 【经验总结】ShardingSphere+Springboot-02 数据分片、标准分片算法、时间间隔分片算法

借助多数据源组件和业务逻辑的修改即可实现,比较常见的微服务架构在考虑模块区分时一般也会将数据库按模块进行划分,这就是一种常见的垂直分片设计。:默认情况下,行表达式分片算法不支持范围查询,因为范围查询可能涉及多个分片,而简单的行表达式分片算法通常只能将查询路由到单个分片。面对如此散乱的分片之后的数据,应用开发工程师和数据库管理员对数据库的操作变得异常繁重就是其中的重要挑战之一。例如:根据主键分片,偶数主键的记录放入 0 库(或表),奇数主键的记录放入 1 库(或表),如下图所示。数据分片的拆分方式又分为。

2024-08-09 16:26:03 958

原创 【经验总结】ShardingSphere+Springboot-01模式&参数配置

在实际业务场景中,比较常见的场景是一个库中100张表只有2张表要分库分表,而其余的表则继续访问默认数据源;在5.0.0之前的版本官方支持直接配置默认数据源,目前并没有找到对应的配置说明, 自己尝试解决。也是一个常用的功能,让服务启动时会检查每个分片的数据/表结构是否一致,建议开启,可以解决一些潜在的bug。**测试一:**不配置该表的策略,配置一个数据源defaultds,该数据源汇总有。:不配置改变测试,再配置一个数据源,里面也有该表。表,观察默认情况下ss选择那个数据源。表,数据源声明顺序不变,即。

2024-08-09 16:24:01 520

原创 【经验总结】ShardingSphere5.2.1 + Springboot 分库分表 快速开始

Apache ShardingSphere (本文后续简称“SS”)是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。它站在数据库的上层视角,关注它们之间的协作多于数据库自身。ShardingSphere-JDBC 定位为。

2024-08-08 14:51:37 913

原创 【经验总结】将markdown文档转换为word(swagger导出word)

进阶:自定义样式文件可以参考官方指南:https://pandoc.org/MANUAL.html#option–reference-doc。进入任意swagger-ui页面中,找到离线文档,并拷贝。(也有swagger-ui搭配直接支持下载word文档,直接下载即可)打开md文档,选择导出,选择word,即可获得word文档。(markdown编辑器安装略)

2024-07-12 15:23:49 1669

原创 【经验总结】Springboot打印指定类的日志到指定文件中

原文地址:https://www.cnblogs.com/zeng1994/p/f9bff238b13a0bf8fb8bf88c41db7a34.html以下内容已经过实践,勘误,总结环境:Springboot2.5.2公司有个项目,需要和几个第三方系统对接。这种项目,日志一定要记录详细,不然出了问题就是各种甩锅。虽然项目里面和第三方系统对接相关的业务记录的日志很详细,但是由于整个项目的日志都在一个文件中,排查问题时比较麻烦。因此希望可以把这些和第三方对接的日志生成在另外一个单独的文件。

2024-07-05 11:02:05 753

原创 【学习笔记】Maven高级2-依赖配置补充

某个工程25,依赖26和28,26依赖log4j,26依赖27,27依赖log4j。当pom之间的同一个依赖版本出现冲突时,就会使用版本仲裁机制来确定使用哪个版本.导入特定位置的jar包,这样导入不具有可移植性,仅限于本地使用,不推荐使用。比如,编译时根据接口调用方法,实际运行时需要调用接口的实现类。典型案例,就是引入springboot,spirngcloud依赖。管理依赖最基础的方法是继承,而且maven也是单继承。如果要实现“继承”多个父工程的效果,可以使用。,类似java的“组合”

2024-06-20 14:16:54 513

原创 【学习笔记】Maven高级01:POM深入了解

其实通过有效POM 我们能够看到,build 标签的相关配置其实一直都在,只是在我们需要定制构建过程的时候才会通过配置build 标签覆盖默认值或补充配置。经过我们前面的学习,我们看到 Maven 在构建过程中有很多默认的设定,例如:源文件存放的目录、测试源文件存放的目录、构建输出的目录.…并不是 Maven 自带的插件,而是 SpringBoot 提供的,用来改变 Maven 默认的构建行为。配置build标签是对超级POM的补充配置,只有在默认的配置无法满足时,才会修改该标签。标签管理起来的插件就像。

2024-06-20 14:14:27 875

原创 【经验总结】Vue2中的全局变量(store

1、找到vue的/src/store路径,在modules文件夹下创建文件(这里便于测试创建demo.js);2、编写代码需要包含state/mutations/actions代码块,分别作用是state:定义常量mutaions:在Vuex中,mutations是用于改变store(应用的全局状态)的唯一方法。actions:触发mutations的异步操作,从而更新 Vuex 的状态。demo如下:注释来自于tongyi/*** 定义一个包含初始状态的对象。

2024-05-08 14:25:23 1599 2

原创 【经验总结】 PostgreSQL的COALESCE 函数用法

函数在 PostgreSQL 中是一个非常有用的函数,它不仅可以用来自动替换。函数接受一系列的参数,并返回第一个非。值,还可以用于多种其他场景。

2024-04-28 14:48:38 2852

原创 【学习笔记】数据结构与算法07 - 图:邻接表,邻接矩阵

图由顶点和边组成,可以表示为一组顶点和一组边构成的集合。相较于线性关系(链表)和分治关系(树),网络关系(图)具有更高的自由度,因而更为复杂。有向图的边具有方向性,连通图中的任意顶点均可达,有权图的每条边都包含权重变量。邻接矩阵利用矩阵来表示图,每一行(列)代表一个顶点,矩阵元素代表边,用 1 或 0 表示两个顶点之间有边或无边。邻接矩阵在增删查改操作上效率很高,但空间占用较多。邻接表使用多个链表来表示图,第 i 个链表对应顶点 i ,其中存储了该顶点的所有邻接顶点。

2024-03-21 10:55:53 722

原创 【备忘录】查询数据库中是否存在数据 的SQL语句性能对比和优化

在仅仅需要判断数据库中是否存在满足特定条件的记录时,使用EXISTS子句或带有LIMIT 1的查询不仅能够提高查询效率,减少资源消耗,还能根据需求灵活地获取相关数据。尽管COUNT(*)在统计记录数量上有其不可替代的价值,但在判断记录是否存在这一特定任务上,我们应该优先考虑更加高效且针对性强的EXISTS和LIMIT 1查询策略。这样才能更好地优化数据库性能,提升应用响应速度。

2024-03-19 11:35:28 1098

原创 【学习笔记】简单认识Https原理

不少同学对 HTTPS 协议不太理解,分析了一下,之所以觉得 HTTPS 这个东西比较难理解,往往是没有分清主干和分支导致的。HTTPS 的主干非常简单,其实就三层而已。

2024-03-18 10:05:57 878

原创 【问题总结】重写equals&&hashCode时需要的问题和避坑经验总结

重写equals方法应该要根据实际的业务场景,选择需要的字段进行重写。特别是在使用lombok或者IDEA快速一键生成时,一定要根据业务场景进行选择使用。遇到一些特殊的数据类型时,切忌无脑使用equals方法,应该使用规定的方法进行比较。

2024-03-13 15:24:47 847

原创 【备忘录】易客云 天气 API获取方法 备忘

响应参数可用的有:温度、风速、湿度——一样是GET请求,每天500次限制。用于区分城市的参数:adcode。可用请求:(GET)请求。

2024-03-07 17:12:36 632

原创 【学习笔记】简单了解网络安全等级保护

等级保护对象是指网络安全等级保护工作中的对象,通常是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息进行收集、存储、传输、交换、处理的系统。主要包括基础信息网络、云计算平台/系统、大数据应用/平台/资源、物联网(IoT)、工业控制系统和采用移动互联技术的等级保护对象根据其在国家安全、经济建设、社会生活中的重要程度,遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的危害程度等,由低到高被划分为五个安全保护等级。

2024-03-07 09:37:20 1882

原创 【学习笔记】数据结构与算法06 - 堆:上堆、下堆、Top-K问题以及代码实现

「堆 heap」是一种满足特定条件的完全二叉树,主要可分为两种类型,- 「小顶堆 min heap」:任意节点的值 ≤ 其子节点的值。- 「大顶堆 max heap」:任意节点的值 ≥ 其子节点的值。需要指出的是,**许多编程语言提供的是「优先队列 priority queue」,**这是一种抽象的数据结构,定义为具有优先级排序的队列。实际上,**堆通常用于实现优先队列,大顶堆相当于元素按从大到小的顺序出队的优先队列**。从使用角度来看,我们可以将“优先队列”和“堆”看作等价的数据结构

2024-03-06 10:00:58 1170

原创 【学习笔记】数据结构与算法05:树、层序遍历、深度优先搜索、二叉搜索树

二叉树 binary tree是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。每个节点都有两个引用(指针),分别指向「左子节点 left-child node」和「右子节点 right-child node」该节点自身被称为这两个子节点的「父节点 parent node」.当给定一个二叉树的节点时,我们将该节点的左子节点及其以下节点形成的树称为该节点的「左子树 left subtr

2024-03-01 11:01:49 819

原创 【学习笔记】数据结构与算法04:哈希表、哈希冲突、哈希算法

知识出处:Hello算法:https://www.hello-algo.com/

2024-02-21 17:06:28 891

原创 【学习笔记】数据结构与算法03:栈与队列

知识出处:Hello算法:https://www.hello-algo.com/.

2024-02-21 17:05:22 909

原创 【学习笔记】数据结构与算法02:数组与链表

知识出处:Hello算法:https://www.hello-algo.com/

2024-02-21 17:03:46 733

原创 【学习笔记】算法学习01:复杂度分析

学习地址Hello算法:https://www.hello-algo.com/

2024-02-21 17:01:46 1057

转载 【学习笔记】秒杀架构模型设计

秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀,那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出健壮的秒杀系统?

2024-02-19 09:33:37 73

原创 【学习笔记】Flowable - 01 - 工作流 快速上手

Flowable快速上手

2024-01-15 15:00:06 1548

原创 【分享&备忘录】Postgresql/pgsql 根据规则,批量联级删除多张表

来源:Chatgpt。

2024-01-15 14:21:52 1068

原创 【学习笔记】Java函数式编程03 Stream流-终结操作

书接上回。

2023-12-26 16:22:33 1132

原创 【学习笔记】Java函数式编程02——Stream流

Stream流是JDK8提供的新特性。使用的是函数式编程的模式。它可以被用来对集合或数组进行链状流式的操作。和之前的IO流进行区分,IO流是针对文件和数据操作可以更方便的对集合和数据进行操作。

2023-12-21 09:33:33 954

原创 【学习笔记】Java函数式编程01-Lambda表达式

看懂代码提高处理大数据量集合的效率代码可读性提升消灭嵌套地狱(反复的嵌套for …if …for …if …导致可读性下降Lambda表达式可以理解为JDK8新增了一个语法糖。对某一些匿名内部类的写法进行简化。是函数式编程的重要体现让程序员不用关注对象,而关注对数据的操作语法糖(Syntactic sugar),也译为糖衣语法[外链图片转存中…(img-ultqjqy9-1703122023748)]指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。

2023-12-21 09:27:30 962

原创 【问题总结】Docker环境下,将Nacos版本2.0.4升级到2.2.3,操作留档 以及 踩坑记录

前记,鉴于nacos暴露的验证鉴权bug(之前尝试解决但是没有完全解决!

2023-12-04 14:50:22 1264

原创 【Geoserver】SLD点位样式(PointSymbolizer)设计全通

SLD文件可以控制geoserver的样式管理,这里专门针对点位进行设计,首先点位的设计需要用到这面这个大标签参考资料地址:https://docs.geoserver.org/stable/en/user/styling/sld/reference/pointsymbolizer.html包含一个可选 元素, 其中 是必需元素。该元素是可选的。 如果存在,则指定要从中获取要设置样式的几何的 featuretype 属性 使用元素 "。 另请参阅 SLD for GeoServer 扩展模块中的几何变换,以

2023-12-01 09:01:12 869

原创 【备忘录】SpringBoot+ dynamic-datasource配置自定义多数据源

多数据源配置

2023-11-01 10:06:48 1781

原创 【备忘录】SpringBean基于某些条件来决定是否注入容器

这些条件注解可以根据配置文件中的属性或容器中是否存在某个Bean来决定是否注入当前的Bean。你可以指定需要检查的Bean的类型或名称,如果容器中不存在该类型或名称的Bean,则当前的Bean会被注入。@ConditionalOnBean注解可以根据容器中是否存在某个Bean来决定是否注入当前的Bean。你可以指定需要检查的Bean的类型或名称,如果容器中存在该类型或名称的Bean,则当前的Bean会被注入。你可以指定属性的名称和期望的值,如果属性值与期望的值相同,则会注入当前的Bean。

2023-10-30 10:36:49 559

原创 【备忘录】修复docker环境下的nacos安全漏洞:身份认证绕过漏洞

在nacos2.2.0.1和1.4.5版本之前的版本中,可能是为了便于开发环境使用,默认开启了一个自带的token默认值,导致上述报告中,可以利用默认的访问秘钥跳过认证,直接登陆。1、检查application.properties文件中token.secret.key属性,若为默认值,可参考:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html进行更改。之后讲登录返回包修改为正确登录信息。点击发送发现正确登录返回信息。同时选中base64加密。

2023-10-23 17:16:13 2429

原创 【学习笔记】RabbitMQ-6 消息的可靠性投递2 (消息幂等性

官方解释x-expires在自动删除队列之前,队列可以闲置多长时间(How long a queue can be unused for before it is automatically deleted)定义了队列自动过期的时间。参数格式 “x-expires”:number如果队列在指定的时间段内未被使用,则该队列将被自动删除。这可以确保不再需要的队列不会一直存在于RabbitMQ服务器上,从而占据资源。两者配合可以指定DLX发送的交换机和键,之前已经研究过就不做赘述了Max length参数用于限制

2023-10-18 12:03:10 1066

原创 【学习笔记】RabbitMQ-5 消息的可靠性投递 以及示例代码

消息队列的 confirm 确认机制,是指生产者投递消息后,到达了消息服务器 Broker 里面的exchange 交换机,则会给生产者一个应答,生产者接收到应答,用来确定这条消息是否正常的发送到 Broker 的 exchange 中。这也是消息可靠性投递的重要保障。用于确保消息传递是否正常,但是会牺牲一些性能,但是提高了系统运行的稳定性。

2023-10-18 12:00:50 177

原创 【学习笔记】RabbitMQ04:延迟队列的原理以及实现代码

正常的MQ应用场景中,我们希望消息可以快速稳定的传递。但是有一些场景中,希望在指定的延迟后再消费信息,比如订单支付场景(订单15部分内未支付则关闭订单)。这类实现延迟任务的场景,就可以采用延迟队列来实现。以下介绍一下其他的一些方法。

2023-10-17 16:16:57 1402 1

原创 【学习笔记】RabbitMQ03:DLX 死信交换机 死信队列 以及示例代码

即DLX(Dead-Letter-Exchange)。也称为:死信交换机、死信邮箱。如下情况后,消息会进入死信交换机中。并进一步被安排到死信队列里,消费者也可以从死信队列中获取消息。

2023-10-17 16:14:55 268

原创 【学习笔记】RabbitMQ02:交换机,以及结合springboot快速开始

根据路由键匹配,进行路由消息队列。生产者将消息发送到交换机X交换机会根据路由键匹配队列并且同一个键也可以匹配多个队列通配符匹配(路由键),相当于模糊查询匹配多个单词,用来表示任意数量的单词(一个或多个匹配一个单词(必须且只有一个)用来隔开为一个单词举个例子:左边是队列的路由键,而右边是发送的路由键头部交换机使用较少,要知道,每一次消息不只包含body,还有头部信息headers。

2023-10-16 14:52:09 834

空空如也

空空如也

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

TA关注的人

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