
Java
文章平均质量分 60
小小码农日渐积累
Java学习 点滴积累。
展开
-
Sharding Jdbc强制路由主库
Sharding JDBC 主从模式下,`查询`使用从库,`添加`、`更新`以及`删除`数据操作时使用主库,但是在某些`实时性`比较高的场景,因为`主从延时`,从库还未同步数据,导致查询不到数据,因此需要强制路由到主库原创 2024-05-11 11:21:20 · 787 阅读 · 1 评论 -
Flutter+SpringBoot实现ChatGPT流式输出
最终实现Flutter的流实输出+上下文连续对话。这里就是提供一个简单版的工具类和使用案例,此处页面仅参考。原创 2023-10-03 18:03:33 · 3830 阅读 · 1 评论 -
华为PMS API client token auth failed
对接华为pms时出现问题,提示华为PMS API client token auth failed。主要是权限的问题,创建项目的时候选择N/A。原创 2023-08-02 10:12:25 · 1125 阅读 · 0 评论 -
解决Jenkins中Maven本地仓库更新不及时的问题
当私服的内容发生变动或有其他依赖更新时,使用Jenkins构建镜像时还使用老的依赖导致构建失败。原创 2022-09-19 16:47:06 · 2043 阅读 · 1 评论 -
SimpleDateFormat性能优化
每一次时间格式化的时候都会去手动new SimpleDateFormat,每一次new都是一次较大的性能开销,因此想到的是用单例的形式来提高性能。由于SimpleDateFormat是线程不安全的,因此可以借助ThredLocal来实现线程安全。代码如下:测试100万,500万,1000万循环不断的format时间测试性能:100万的时候500万的时候100万的时候性能是有所提升的。............原创 2022-06-23 23:23:38 · 1224 阅读 · 0 评论 -
力扣两数之和-java实现
题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:示例 2:示例 3:答案:使用Map,此时只需要循环一次即可。结果:通过执行用时:1 ms, 在所有 Java 提交中击败了99.28%的用户内存消耗:41.5 MB, 在所有 Java 提交中击败了55.01%的用户通过测试用例:原创 2022-06-23 10:12:15 · 629 阅读 · 0 评论 -
自定义注解+AOP实现字典值的翻译
字典部分这一块无论是前端和后端都可以做,在目前所接触的项目环境中是前端来做会比较方便的,但是有遇到需要不断远程调用查询的场景,类似的动作不断重复的代码,因此就自己写了个注解实现字典翻译,故此来记录一下过程。环境:SpringBoot+Mybatis-plus很多场景下,我们存储的数据是需要经过翻译的,就比如:这些数据存在系统的字典中,表数据存储的时候为了性能考虑不直接存 男 、 女,只是存1 或 0 ,前台展示的时候就需要把该值进行翻译。每个业务都写的话会比较多类似的操作,可以使用AOP的形式简化工作。一般原创 2022-06-22 15:19:05 · 2126 阅读 · 1 评论 -
秒杀抢红包的思考和总结
序言这是一个导师的作业,要求在理论上实现发红包、抢红包的操作,且不使用Redis、MQ等不属于Java语言的技术,思考如何做秒杀内容。因此记录下整个作业流程,方便以后学习。需求描述在游戏中,玩家A向全服玩家发送红包,其他玩家可以通过“抢红包”的操作来获得红包中的部分奖励尝试思考,当有1000名玩家几乎同时发起“抢红包”操作时,如何保证每个玩家的操作延时在 10ms以下?文章目录序言需求描述(一) 实现思路和难点论证实现思路难点论证(二) 整体流程和伪代码整体流程代码及数据库设计(三) 关键逻辑原创 2022-02-28 21:10:08 · 1360 阅读 · 1 评论 -
使用RedisTemplate实现分布式乐观锁
前言使用乐观锁能够在不上锁的情况下实现线程安全,常用的实现方式就是使用CAS自旋的形式实现。通常在分布式系统中有三种实现方式数据库行级锁Zookeeper实现分布锁Redis实现乐观锁三种方式各有优点,其中Redis和Zookeeper最常用,Redis性能最高,Zookeeper可靠性最高代码实现基于RedisTemplate,封装使用,通过IOC控制的方式实现:import entity.StatusCode;import exception.CourseException;原创 2021-11-25 15:22:05 · 1896 阅读 · 1 评论 -
微信小程序统一封装request请求,统一拦截校验
前言因为用习惯了Vue的axios,将请求统一封装,这样可以编写一处请求,然后让需要的模块直接引用调用即可,同时也可以做拦截器,token状态刷新等等操作,或者响应特定的东西。因此就试着封装request,并且使用风格上尽量偏向于跟vue admin template里的request类似,这样也好让自己上手。代码实现封装wx.request,在utils创建文件,request.js:const app = getApp();var baseURL = app.getURL();//将url定原创 2021-11-01 09:42:41 · 4534 阅读 · 1 评论 -
让微服务只允许来自网关的请求
让微服务只允许来自网关的请求一般各个微服务的请求都是通过网关转发的,但是想要让微服务只允许来自网关的请求,可以操作:在网关中:添加一个参数systemFrom,值为gateway,一起转发给微服务,微服务只需要判断值是不是gateway即可@Componentpublic class AuthorizeFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(Server原创 2021-09-20 17:19:14 · 2813 阅读 · 1 评论 -
解决SpringCloud Gateway网关跨域问题
前后端分离项目,非同源地址会发生跨域问题。因此需要解决跨域问题总的来说,解决方案:NGINX解决跨域问题在网关处解决跨域问题这里记录自己在网关处解决跨域的方法:技术:Springcloud Gatewayspringboot版本:2.1.4方法1:在application.xml:spring: cloud: # 跨域配置 gateway: globalcors: cors-configurations: '[/**]': #原创 2021-09-20 17:10:33 · 3138 阅读 · 1 评论 -
Java全链路复习面经-基础篇(2.5万字全文)
序言基础篇谈谈对面向对象思想的理解面向对象是一种编程思想。面向对象程序设计的核心思想是以对象为核心。除了面向对象之外还有面向过程,二者是两种不同的开发思想。当我们需要完成生成随机数这一个功能时,如果是以面向过程的思想进行开发,则更加专注于设计的这个实现的算法;但是以面向对象的特性来完成这个功能时,我们更强调的是对象,通过找一个能够生成随机数功能的对象来帮我们完成(如Random),作为开发者并不需要关注这个代码是怎么实现的,找到合适的对象,然后调用对象的方法即可。面向对象的四大特性:封装、集成、多原创 2021-09-01 20:56:54 · 585 阅读 · 1 评论 -
利用RabbitMQ的TTL实现延迟队列
在这里插入图片描述原创 2021-06-08 22:07:50 · 248 阅读 · 3 评论 -
Redis复习-主从复制-哨兵-雪崩等-面试知识总结
Redis知识汇总-含面试知识总结(一) Redis简介简介与使用场景Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言 编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API ——源自百度百科。Redis是属于NoSql系列的非关系型数据库,广泛应用于缓存。应用场景:(1)为热点数据加速查询(主要场景)。如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。(2)即时信息查询。如各位排行原创 2021-05-30 20:39:15 · 254 阅读 · 3 评论 -
使用消息队列完成微信支付(含内网穿透)
序言记录一下这个Demo,结合RabbitMQ实现微信支付(二维码版),使用内网穿透的条件下完成消息异步回调。要实现微信支付的话必须要有企业认证的微信公众号->个人是无法使用的。实现步骤微信开发目前官网有很完善的步骤,可访问官网:https://pay.weixin.qq.com/wiki/doc/api/index.html要实现的是结合自己的项目,利用消息队列的形式解耦。以下是官网开发的步骤:
JavaSe阶段一复习(上)第一部分1.0 局部变量和成员变量局部变量存在方法中,成员变量存在于方法外局部变量定义时没有默认值,成员变量有默认值局部变量存在于栈中,成员变量存在堆中。局部变量在方法进栈时诞生,随着方法出栈时消亡。成员变量在堆中与new出来的对象生命周期一致,随着Java虚拟机的垃圾回收而消亡。1.1 This和构造方法This:是关键字,表示当前调用的对象,即 谁调用,谁就是this构造方法: 构造方法就是用来创建对象的方法。构造方法注意事项:构造方法的名称需要和原创 2021-03-29 20:46:01 · 142 阅读 · 0 评论