- 博客(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
原创 Maven每次更新导致IDEA的Java compiler于JDK版本不一致导致:java: 错误: 不支持发行版本 5
IDEA中java compiler保持稳定
2023-09-20 22:02:41 311
原创 JVisualVM:The operation couldn’t be completed. Unable to locate a Java Runtime that supports jvisual
jvisualvm指令不支持
2023-09-11 14:45:42 3807
原创 SPU&SKU&规格参数
下面是个人基于SPU和SKU的理解结合项目进行的一个简单摘要记录。原文对SPU和SKU相关概念进行了系统的说明和讲解,可直接移步到。
2023-08-17 18:37:17 75
原创 基于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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人