自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决mybatis plus 中 FastjsonTypeHandler无法正确反序列化List类型的问题

反序列后我们并没有指定里面的对象,所以会导致我们反序列化出的对象的成员为JsonObject。由于是根据自动映射类型,我们设置的字段类型是List 也就是反序列化的时候也只是用。定义一个class 继承ArrayList即可。FastjsonTypeHandler中的。反序列化方法,这是type为List。然后我们再把字段设置成。

2024-09-18 16:27:46 257

原创 mybatis plus 查询部分源码分析,typehandler怎么实现的?FastjsonTypehandler 查询问题怎么解决?

TableName(autoResultMap = true)时,查询的时候执行getJdbcHandlerMap方法,尝试根据字段的类型,手动从map中获取handler,把每个字段都配置上对应的handler,如果没找到handler则不处理结果也就是返回null。执行查询的时候,会先处理参数,获取所传参数的typehandler,然后setparameter之类的,处理完之后会执行 baseExecutor的doquery方法。通过注解可以灵活处理。

2024-08-15 16:51:52 259

原创 springboot 实现elastic search 千万级数据同步 ,mysql 深度分页处理

(1)更新数据量太大,如果没有使用 消息队列则会对服务器造成相当大的压力(2)即使用消息队列,产生的消息也相当多,要注意消息积压的问题。

2024-07-25 17:27:17 408

原创 等有空写篇关于spring aop 的应用场景

日志切换数据源。

2024-04-11 17:10:11 179

原创 子查询就一定会让sql变慢?搞半天把7s的慢sql优化到0.4s

实在是太大了,也不知道之前的是怎么写的,主要还是查出每个specode对应的最近时间的一些数据,

2024-02-28 17:48:38 543

原创 优质github账号直接领取价值200$空投奖励!starknet空投规则

2.在 2023 年 11 月 15 日之前,您对属于全球前 5,000 个存储库(按星数排名)之一的存储库至少进行了 3 次提交。其中至少有一项提交发生在 2018 年或之后。1.您在 GitHub 上显示为 2023 年 11 月 15 日之前发布的 EIP 的作者或共同作者。具体领取可以私聊作者代领,因为涉及到区块链转账等操作,相对麻烦,不在本文赘述。

2024-02-22 13:29:20 3091 3

原创 使用mybatis plus 根据数据库表快速生成代码

【代码】使用mybatis plus 根据数据库表快速生成代码。

2023-11-06 16:18:25 262

原创 mysql json字段使用以及常用json函数,配合springBoot和mybatis-plus简化开发

自定handler的扫描路径 *mybatis-plus: type-handlers-package: com.nala.test.handler。

2023-09-28 15:58:39 3052

原创 java: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded

启动多个项目的时候,有一个项目一直起不来,报这个GC的错误。看了最大堆内存是6个G 实际占用一半还不到。所以判断不是JVM堆内存的问题。然后在构建设置这块,看到了共享构建进程堆大小才700M。果断改成2048,运行成功。

2023-07-05 17:12:10 266 1

原创 用poi写一个三层嵌套的表格数据封装并下载

【代码】用poi写一个三层嵌套的表格数据封装并下载。

2023-06-21 16:34:33 290

原创 http的util类,通过http请求向飞书请求并获取user_access_token实现免登录

log.info("飞书响应{}", feiShuUserAccessTokenVO);log.error("获取飞书UserAccessToken失败!log.error("获取飞书APPAccessToken失败!log.info("飞书响应{}",appAccessTokenVO);* 获取飞书的UserAccessToken。* 获取飞书AppAccessToken。// 创建Httpclient对象。// 创建Http Post请求。// 执行http请求。

2023-06-12 13:24:11 1767

原创 xxl-Job分布式任务调度 入门

当前软件的架构已经开始向分布式架构转变,将单体结构拆分为若干服务,服务之间通过网络交互来完成业务处理。在分布式架构下,一个服务往往会部署多个实例来运行我们的业务,如果在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。将任务调度程序分布式构建,这样就可以具有分布式系统的特点,并且提高任务的调度处理能力:1、并行任务调度并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。

2023-05-10 21:49:04 1330 1

原创 一种简单的用redis实现锁的方式

在使用RedisTemplate实现锁时,需要将RedisTemplate注入到锁类中,通过调用opsForValue()方法来获取ValueOperations对象,利用ValueOperations对象调用setIfAbsent()方法和expire()方法来实现锁的获取和设置超时时间,利用delete()方法来释放锁。使用Redis的SETNX命令来尝试获取锁,如果SETNX命令返回1,表示获取锁成功;获取锁成功后,使用Redis的EXPIRE命令为锁设置超时时间,确保锁在一定时间内自动过期释放。

2023-03-05 16:49:31 461

原创 java黑马头条 day5自媒体文章审核 敏感词过滤算法DFA 集成RabbitMQ实现自动审核

做为内容类产品,内容安全非常重要,所以需要进行对自媒体用户发布的文章进行审核以后才能到app端展示给用户。2WmNews 中status代表自媒体文章的状态status字段:0 草稿 1 待审核 2 审核失败 3 人工审核 4 人工审核通过 8 审核通过(待发布) 9 已发布当自媒体用户提交发布文章之后,会发消息给RabbitMQ提交审核自媒体微服务提供消息监听,处理自动审核查询文章数据判断文章id是否为1 (只有1需要自动审核)

2023-02-19 10:38:10 2898 2

原创 java 黑马头条 day4 自媒体文章发布 自媒体文章列表查询 频道列表展示 自媒体文章-发布、修改、保存草稿 自媒体文章-根据id查询 自媒体文章-删除

修改WmNewsMaterialMapper,添加一个方法,用来批量添加数据,用于素材与文章关系做关联/*** 保存文章和素材的关联关系* @param wmMaterialIds 素材id集合* @param newsId 文章ID* @param type 文章封面类型 0 内容引用 1 封面引用*/新建resources\mapper\WmNewsMaterialMapper.xml文件values。

2023-02-14 17:18:32 1149 1

原创 java 黑马头条 day3 实名认证分布式事务问题 seata

(1)模块,在当前模块下创建子模块,添加依赖--OSS-->(2)创建包资料文件夹下导入service和config包下的内容:结构如下:(3)在resources目录下新建配置文件(4)添加OSS配置添加依赖配置中心nacos添加共享配置#OSS配置file:oss:bucket-name: access-key-id: access-key-secret: web-site:

2023-02-13 10:52:22 1583

原创 java 黑马头条 day2 登录鉴权_实名认证

随着 Restful API、微服务的兴起,基于 Token 的认证现在已经越来越普遍。基于token的用户认证是一种服务端无状态的认证方式,所谓服务端无状态指的token本身包含登录用户所有的相关数据,而客户端在认证后的每次请求都会携带token,因此服务器端无需存放token数据。当用户认证后,服务端生成一个token发给客户端,客户端可以放到 cookie 或等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份。

2023-02-10 22:18:11 905

原创 java 最新黑马头条项目 day1 环境搭建 Swagger

随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客户端的需求也越来越高。黑马头条项目正是在这样背景下开发出来。黑马头条项目采用当下火热的微服务+大数据技术架构实现。本项目主要着手于获取最新最热新闻资讯,通过大数据分析用户喜好精确推送咨询新闻黑马头条项目是对在线教育平台业务进行大数据统计分析的系统。碎片化、切换频繁、社交化和个性化现如今成为人们阅读行为的标签。

2023-02-08 19:30:15 2500 2

原创 java ElasticResearch DSL查询文档 搜索结果处理 RestClient查询文档 黑马旅游案例

elasticsearch的查询依然是基于JSON风格的DSL来实现的。Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询的语法基本一致:GET /indexName/_search{  "query": {    "查询类型": {   &nbsp

2023-02-06 23:15:19 449

原创 java 微服务 分布式搜索引擎 ElasticSearch Kibana RestClient操作索引库 RestClient操作文档

什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。

2023-02-05 18:48:50 1096 1

原创 java 微服务 RabbitMQ高级 消息可靠性问题 死信交换机 延迟队列 惰性队列

Slf4j//实现这个接口会在spring加载完成后直接加载该类@Override//从ioc容器中 拿到template对象//设置发送者确认回调函数/*** @param correlationData 自定义的数据 消息UUID* @param b 是否确认 true 消息发送到exchange中 false就是未发送到* @param s 原因:*/@Override。

2023-02-03 17:01:27 888 1

原创 java 分布式缓存 redis持久化 redis主从 Redis哨兵 Redis分片集群

- 基于Redis集群解决单机Redis存在的问题单机的Redis存在四大问题:数据丢失问题 :Redis是内存存储,服务重启可能会丢失数据并发能力问题 :单节点Redis并发能力虽然不错,但也无法满足如618这样的高并发场景故障恢复问题 :如果Redis宕机,则服务不可用,需要一种自动的故障恢复手段存储能力问题 :Redis基于内存,单节点能存储的数据量难以满足海量数据需求。

2023-02-02 20:49:11 453

原创 java 微服务高级之分布式事务 Seata框架 CAP定理 BASE理论 XA模式 AT模式 TCC模式 SAGA模式

XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。AT模式同样是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。Seata的TC服务作为分布式事务核心,一定要保证集群的高可用性。

2023-02-02 11:58:47 561

原创 java服务框架高级之微服务保护 Sentinel 限制规则,流控模式,流控效果 线程隔离和熔断降级 授权规则 规则持久化

Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html。这种情况对热度不同商品设置不同限流比较好用。哪个需要限流,就在哪个进行高级流控设置。所以我们要在对应的方法上加上。

2023-01-31 21:52:11 811

原创 java开发中常见的工具类,方法等(持续更新)

/将item内容拷贝到新建的vo对象中。* 工具类向threadLocal存储诗句。//当前线程获取用户对象。//当前线程获取用户id。//先判断users集合是否为空。//获取当前用户手机号。//将用户对象,存入。

2023-01-30 16:27:31 1838 1

原创 java 探花交友项目day5 推荐好友列表 MongoDB集群 发布动态,查询动态 圈子功能

副本集群:多个服务器存储相同的数据保证可靠性。但是不能解决海量数据问题分片集群为了保证每个服务的高可用,需要服务配置副本集群,这里仅以单节点为例。

2023-01-29 22:47:19 7139

原创 java 探花交友项目day4 MongoDB

其他都比较简单。

2023-01-22 00:32:41 1640 1

原创 java 探花交友项目实战 day3 完善个人信息 阿里云OSS文件存储 百度人脸识别

Data//域名/*** 文件上传* 1:文件名称* 2:输入流*///3、拼写图片路径// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。

2023-01-17 19:53:06 2675

原创 java 探花交友day2 项目简介,环境搭建 登录验证码

通过接口文档(API文档)定义规范开发工具安装与配置Linux虚拟机YAPI账号 tanhua@itcast.cn 密码123456安装个安卓模拟器,然后安装APK开发环境说明。

2023-01-14 00:20:16 615

原创 java 探花交友项目实战篇1Dubbo 提供者消费者 dubbo高级特性 启动检查 多版本 超时与重试 负载均衡

Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。官网:http://dubbo.apache.org目前Dubbo在企业中有两种开发思路feign不适合高并发,所以我们替换成Dubbo。

2023-01-13 14:55:57 918

原创 java 微服务之docker基础入门 docker部署 镜像相关命令 容器命令 数据卷 DockerCompose Docker镜像仓库

镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。更新详细语法说明,请参考官网文档: https://docs.docker.com/engine/reference/builder# 指定基础镜像# 配置环境变量,JDK的安装目录# 拷贝jdk和java项目的包# 安装JDK# 配置环境变量# 暴露端口# 入口,java项目的启动命令# 指定基础镜像# 暴露端口# 入口,java项目的启动命令。

2023-01-09 17:26:48 824

原创 java 微服务之MQ消息队列 异步通信 SpringAmqp 交换机Exchange

MQ(MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。我们选择使用RabbitMQ。

2023-01-07 17:23:11 1632

原创 java 微服务 Nacos配置 feign 网关&路由

Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。

2023-01-07 14:56:15 2707

原创 java 微服务框架介绍 SpringCloud Eureka注册中心 Nacos注册中心

1.在user-service项目引入spring-cloud-starter-netflix-eureka-client的依赖。我们查询的时候需要到另一个数据库查询username,我们只能通过向另一个服务发送请求的方式,来获得对应的响应。1.创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖。服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)

2023-01-05 15:19:07 536 1

原创 java 瑞吉外卖优化day3 前后端分离开发

介绍类似于描述型注解。

2023-01-04 13:20:26 84

原创 java 瑞吉外卖优化day2 Nginx

可以到Nginx官方网站下载Nginx的安装包,地址为:https://nginx.org/en/download.html安装过程:1、安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel先yum install wget ,这样就能使用wget命令2、下载Nginx安装包wget https://nginx.org/download/nginx-1.16.1.tar.gz。

2023-01-02 22:51:32 388

原创 java 瑞吉外卖优化day2 读写分离 ShardingJDBC

补充:从库可以有多个提前准备好两台服务器,分别安装Mysql并启动服务成功主库Master 192.168.138.100从库Slave 192.168.138.101Window系统则是在my.ini文件里直接配置mysql -uroot -p密码登录Mysql数据库这里我们要先创建用户,然后赋予权限:使用“GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

2023-01-01 16:11:27 668

原创 java 瑞吉外卖优化day1 缓存短信验证 git分支开发 缓存套餐数据 SpringCache

我们按照分类,对菜品数据进行缓存,list方法里先从redis获取数据,有就直接返回,没有就查数据库然后把数据放入redis。但是我们更新完菜品后,如果还从缓存拿数据,就跟数据库不一样了,所以我们要在涉及到数据库更新的方法里,加入清理缓存逻辑。我们有两种方式:一种是清除所有菜品的缓存数据,一种是清除当前的菜品类的缓存数据。//将生成的验证码,缓存到redis中,并设置有效期为5分钟。//如果用户登录成功,我们就直接删除redis中的验证码。//判断获取的dishDtos是否为空,有内容则直接返回。

2022-12-31 10:58:52 454

原创 java Redis基础 数据类型 常用命令 java中使用Redis

Windows版下载地址:https://github.com/microsoftarchive/redis/releasesLinux版下载地址: https://download.redis.io/releases/ linux中 将redis配置文件的 指定ip为本地 注释掉,就可以了 get如果不存在,就会返回nil 更多命令可以参考Redis中文网:https://www.redis.net.cn

2022-12-26 14:09:21 495

原创 java 之 git 手把手教学

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。 git add前就是未跟踪 push前,需要add到转存区,commit到本地,才能提交 加入参数--allow.....后,会跳转到保存信息界面,按i 输入自定信息,然后esc 取消输入模式输入 :wq 保存退出 就相当于是拍某个时刻的照片,该照片定格状态不再变化,当我们项目开发到一定程度,可以打一个标签 如V1.0 id

2022-12-24 19:50:37 714

空空如也

空空如也

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

TA关注的人

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