自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

idooy的学习笔记

主打一个随记

  • 博客(51)
  • 收藏
  • 关注

原创 JSR303参数校验-SpringMVC

JCP(Java Community Process)为Java技术制定标准技术规范的机构,任何人都可以注册 JCP 网站,并且可以参与JSR(Java Specification Requests:Java规范提案)的评审,也可以提交自己的JSRBean Validation是Java定义的一套基于注解的数据校验规范,出自JSR303,JSR349,JSR380规范提案.有时候框架提供的约束注解并不能满足我们的需求,所以需要自定义合适的校验规则来满足自己的校验需求。

2024-02-03 21:40:28 1564 1

原创 EasyExcel百万数据导入导出

开发中,导入导出功能对于后台管理这样的系统来说太常用了,除了实现该功能外导入导出的性能也需要开发人员进行充分的考虑。个别系统导入导出业务复杂,出现问题的地方就不局限于上面的这几个点,开发中如果是优化的话,那也无法抛开复杂的业务场景而单纯的去讨论导入导出的功能。曾经就亲身经历过业务员导入7W条数据跑好几个小时,同步导出10W条数据接口超时。如果没有业务逻辑从中作梗;单纯的导入和导出10W条数据还是很轻松的。总之,导出导入功能如果追求效率,就需要往多线程上靠;必要的话,还需要进行异步操作。

2024-01-09 21:40:36 2654 1

原创 高并发下缓存失效问题-缓存穿透、缓存击穿、缓存雪崩、Redis分布式锁简单实现、Redisson实现分布式锁

基于Redis的setnx命令简单实现分布式锁,并在实现的过程中逐一暴露和处理各种问题,最后引出Redisson实现分布式锁

2023-12-01 23:55:28 325

原创 Java多线程----创建线程、线程池ExecutorService、异步编排CompletableFuture

自定义类实现Runnable接口;通过的方式创建线程// 方式1;继承Thread类// 方式2;实现Runnable接口).start();Java中线程池就是Executor或者对象实例之前通过不能重复利用线程,有多少任务就创建多少个线程如果需要处理大量任务,就需要频繁地创建和销毁线程会浪费时间和效率如果同一时刻存在大量的线程,那么线程之间还存在竞争资源,CPU上下切换等问题线程池通过预先创建一定数量的线程,让这些线程处理来自任务队列中的任务,而不是频繁创建和销毁线程。

2023-11-02 22:43:22 945

原创 如何在MacOS使用homebrew安装Nginx

这条命令以绝对路径的形式执行nginx脚本文件;所以它可能不太适合你(有可能就找不到此文件),因为它和自己系统的Homebrew安装路径息息相关,这里的/opt/homeberw就是我自己的Homebrew安装路径。:Nginx安装成功后会提示目录位置;每个人的系统可能因为Homebrew的安装位置不同而不同,所以这几个目录位置要记下来,方便后期配置和维护Nginx。其实它们都在我本机的Homebrew安装目录下/opt/homebrew。如果确实是文件找不到,就可以试试。具体的原因如果感兴趣可以。

2023-11-01 19:45:30 1184

原创 MacOS安装homebrew

Homebrew安装需要依赖,请先确保Git已安装成功是MacOS必不可少的包管理器,尤其适用于开发人员、系统管理员和高级用户。使用 Homebrew,可以在 Mac 上的终端安装免费和开源软件。

2023-11-01 18:15:28 543

原创 MacOS安装git

包括git、make、gcc、clang、perl、size、strip、strings、libtool、cpp、what以及其他很多能够在Linux默认安装中找到的有用的命令 (以前还提供有svn,后来在某次更新后就不提供了)检查Command Lines Tool是否已安装,如果没有安装则使用如下命令安装。下载二进制文件以后,安装正常的流程安装即可;下面这两种的方式的效果都是一样,不过这种方式安装的。,如图根据官方提供的安装方式,本人认为。命令,如果系统已经安装了。安装成功以后会接着安装。

2023-11-01 17:01:34 1064

原创 Elasticsearch分词器-中文分词器ik

因为本人使用Docker安装ES,并在docker run的使用将plugins挂载到了宿主机的 /home/es-kibana/volume/plugins目录下;所以就直接在该目录下创建ik文件夹,并执行上面的解压命令。默认的 standard analysis 对每个汉字进行了分词,显然这不是我们所期望。也不局限于这一种方式,只要能把zip下载并上传到服务器上怎么样都行。,找到和当前ES匹配的版本,ik的版本是跟着ES走的。该API会将文本内容分词成如下单词。ik提供了两种分词器。

2023-10-25 00:15:37 521

原创 Elasticsearch之mapping

可以看到mapping中定义的字段类型,其中account_number是long类型、address字段是全文检索,并且它还定义了下面的keyword属性是个keyword类型,即不可分词。这也很好的解释了为什么是精确匹配比如,只想查看中的字段的定义信息,可以使用以下命令。

2023-10-24 22:22:20 456

原创 Elasticsearch聚合----aggregations的简单使用

ES中的aggregations提供了数据分析能力,比如从数据中分组和提取数据的能力。最简单的聚合方法大致等于 SQL中GROU BY和SQL中的聚合函数。在 Elasticsearch 中,执行聚合返回 hits(命中结果)的同时还返回聚合结果。

2023-10-24 19:42:16 966

原创 ES SearchAPI----Query DSL语言

提供了一个可以执行查询的JSON 风格的 DSL (domain-specific language 领域特定语言)。这个被称为Query DSL。ES 支持两种基本方式检索,通俗的讲第二种检索方式的请求体就是DSL语言接下来的实验操作都是基于进行的。

2023-10-24 13:54:39 321

原创 SpringBoot集成ES、使用Java API对其进行简单的测试

使用7.14.0版本;SpringBoot的版本2.6.13;的版本存在差异,请参照。

2023-10-23 16:36:12 711

原创 curl: (56) Recv failure: Connection reset by peer

将SpringBoot应用的jar根据DockerFile文件build成image后,使用docke run运行容器;既然目前问题已经明确指向容器,把容器能找的日志都找了个遍,可它确实就只有启动日志,我就把应用的那点启动日志反复的阅读,终于日志中的。现在问题就集中在了应用容器这一块了,查看日志、怀疑Docker Network;该问题具体的解决办法不一定适合所有的业务场景,即当前错误可由很多种情况引发,具体的解决方案还得结合自己的业务环境细心排查。也只有SpringBoot正常启动的日志,未发现异常。

2023-10-20 11:18:40 1250

原创 no main manifest attribute, in xxx.jar

no main manifest attribut,in xxx.jar

2023-10-19 17:01:05 327

原创 记录Nginx+Gateway+Docker容器项目实战

1、谷粒商城项目商城页面全部使用服务器端模板引擎thymeleaf渲染;因此必然导致各个微服务存在大量的静态资源。2、Nginx使用Docker进行的部署;明确这点对location块中配置的root属性至关重要。下图是项目早期的一个简单部署绘制,本小节只关心图中的红线部分是如何实现的。首先明确一下Nginx的配置文件之间的联系;根据上图可知静态资源即将要存储的位置,

2023-10-19 00:17:10 178

原创 Mac系统编辑hosts文件

mac的hosts文件路径与编辑

2023-10-17 23:18:41 92

原创 Docker安装Nginx

Docker安装Nginx

2023-10-12 00:19:08 68

原创 Mac安装JMeter-解压官方下载tgz包的方式

Mac安装jmeter

2023-10-07 20:52:59 443

原创 SpringBoot+Redis单节点基础集成

【代码】SpringBoot+Redis单节点基础集成。

2023-09-20 23:14:45 124

原创 Maven每次更新导致IDEA的Java compiler于JDK版本不一致导致:java: 错误: 不支持发行版本 5

IDEA中java compiler保持稳定

2023-09-20 22:02:41 311

原创 Linux安装Redis之基本安装、Docker安装

Redis使用Docker进行安装

2023-09-20 20:51:16 140

原创 Redis缓存击穿、穿透、雪崩

Redis缓存击穿、缓存穿透、缓存雪崩的基本概念

2023-09-20 14:45:54 51

原创 VisualVM工具

jvisualvm的介绍

2023-09-12 01:01:22 196

原创 MacOS安装、卸载JDK、查看JDK相关信息

MacOS M2卸载JDK1.8,安装JDK11.以及部分JDK信息查询命令

2023-09-12 00:02:15 500

原创 JVisualVM:The operation couldn’t be completed. Unable to locate a Java Runtime that supports jvisual

jvisualvm指令不支持

2023-09-11 14:45:42 3807

原创 Run DashBoard服务批量启动

Run DashBoard多服务一键启动

2023-08-24 23:14:47 51

原创 MySQL基础性知识

囊括了MySQL基础知识

2023-08-22 20:46:08 136

原创 MySQL索引基本概念和缺点

MySQL索引的概念和缺点

2023-08-22 20:32:27 70

原创 Java8相关新特性

JAVA8相关新特性

2023-08-22 18:09:16 45

原创 MybatisX-Generator

MybatisX插件的generate功能

2023-08-22 13:37:15 270

原创 MySQ索引创建

索引的基本创建

2023-08-19 00:09:50 76

原创 MySQL索引分类

MySQL数据库常见索引的种类和不同规则下的分类

2023-08-18 21:30:27 43

原创 MySQL之InnoDB索引B+Tree

MySQL数据库InnoDB存储引擎索引数据结构简单记录

2023-08-18 20:44:42 113

原创 SPU&SKU&规格参数

下面是个人基于SPU和SKU的理解结合项目进行的一个简单摘要记录。原文对SPU和SKU相关概念进行了系统的说明和讲解,可直接移步到。

2023-08-17 18:37:17 75

原创 SpringAMQP保证RabbitMQ消息可靠性

SpringAMQP保证RabbitMQ消息的可靠性

2023-08-11 13:22:06 199

原创 IDEA之Tab页设置选项

IDEA中的tab设置

2023-08-11 10:21:20 375

原创 SpringAMQP的消息转换器

SpringAMQP配置自定义MessageConverter类型

2023-08-11 10:19:20 53

原创 基于amqp-client介绍RabbitMQ各个工作模式

在队列成功发送消息给消费者后便会继续发送消息,以至于消费能力较弱的消费者把消息堆积在了客户端;在消费端开启自动应答且其中存在处理消息时间较长的消费者时,会存在消息永久丢失的问题,因此消费端 Auto Ack 是需要规避的。消息的Routing Key = ‘idooy.order.hello’,根据通配符的匹配规则可知,该消息将被。消息的Routing Key = ‘idooy.order’,根据通配符的匹配规则可知,该消息将被。一方面,交换机接收来自生产者的消息,另一方面,它将消息推送到队列。

2023-08-07 23:10:42 266

原创 SpringBoot集成RabbitMQ入门级教程(点对点模式)、消费端@RabbitListener使用、Jackson2JsonMessageConverter消息转换器

SpringBoot集成RabbitMQ,点对点模式的入门级开发;@RabbitListener的使用,以及消费端可以使用哪些参数类型进行消息的接受

2023-08-07 10:42:25 298

原创 RabbitMQ-Web页面基本操作

RabbitMQ-Web管理界面用户管理、虚拟机管理等操作

2023-08-06 14:20:22 462

空空如也

空空如也

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

TA关注的人

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