- 博客(202)
- 收藏
- 关注
原创 06.OpenFeign接口调用
即可完成对服务提供方的接口绑定,统一对外暴露可以被调用的接口方法,大大简化和降低了调用客户端的开发量,也即由服务提供者给出调用接口清单,消费者直接通过OpenFeign调用即可,O(∩_∩)O。@Path,@GET,@POST,@PUT,@DELETE,@HEAD,@OPTIONS,@PATCH等。订单模块要去调用支付模块,订单和支付两个微服务,需要通过Api接口解耦,一般不要在订单模块写非订单相关的业务,将Feign接口,写在公共的依赖模块中,因为其他模块,可以也会需要远程调用支付模块。
2025-09-27 16:18:27
806
原创 SpringBoot.3中的aot.factories到底有什么用?和以前的spring.factories一样吗?
如果你还不熟悉 GraalVM,但一定听说过 OpenJDK。实际上,它们都是完整的 JDK 发行版本,能够运行任何面向 JVM 的语言开发的应用。不过,GraalVM 不仅限于此,它还提供了一项独特的功能——Native Image 打包技术。这项技术的强大之处在于,它能够将应用程序打包成可以独立运行的二进制文件,这些文件是自包含的,完全可以脱离 JVM 环境运行。换句话说,GraalVM 允许你创建类似于常见的可执行文件(如 .exe 文件)的应用程序,这使得部署和分发变得更加简便和灵活。
2025-09-27 16:17:43
1015
原创 搭建个人音乐网站!一个基于 SpringBoot + Vue 的音乐网站!
— 一个基于 SpringBoot + Vue 的音乐网站,包含网站的客户端和管理端!功能特色音乐播放用户登录注册用户信息编辑、头像修改歌曲、歌单搜索歌单打分歌单、歌曲评论歌单列表、歌手列表分页显示歌词同步显示后台对用户、歌曲、歌手、歌单信息的管理技术栈后端:SpringBoot + MyBatis + Redis + Minio。
2025-09-27 16:17:08
460
原创 SpringBoot+SeetaFace6搭建人脸识别平台
FaceLandmarkerProxy为人脸关键点bean,能够检测人脸的关键点,支持5个点和68个点。集成了face-api.js,实现简单的张张嘴,摇摇头活体检测,精确度不是很高,作为一个参考选项。在使用相关bean对象时,需要进行library的本地注册,指定cpu还是gpu模式。FaceRecognizerProxy为人脸比对bean,能够比对两张人脸的相似度。FaceDetectorProxy为人脸检测bean,能够检测图像中是否有人脸。
2025-09-27 16:16:34
614
原创 了解final关键字在Java并发编程领域的作用吗?
使用final是所谓的安全发布(safe publication)的一种方式,这里 发布(publication)意味着在一个线程中创建它,同时另一个线程在之后的某时刻可以引用到该新创建的对象。存在如下场景:当JVM调用对象的构造函数时,它必须将各成员赋值,同时存储一个指向该对象的指针;但就像其他普通数据写入一样,这可能是乱序的。而final可以防止此类事情的发生:如果某个成员是final的,JVM规范做出如下明确的保证:一旦对象引用对其他线程可见,则其final成员也必须正确的赋值了。
2025-09-27 16:15:53
368
原创 MySQL 官宣:支持读写分离了!!
综上所述,MySQL Router 8.2 支持读写分离。这是一项很有价值的功能,可以优化数据库性能和可扩展性,而无需对应用程序进行任何更改。我们可以看到,默认情况下,如果执行读操作,我们将访问到副本,但如果启动事务,我们将到达复制源(主),而无需更改端口并使用相同的连接。通过此配置,您可以将所有读取流量定向到只读实例,并将所有写入流量定向到读写实例。
2025-09-27 16:15:15
240
原创 Spring Boot 3 配置 Redis 兼容单例和集群
开发时一般用一个Redis单例就足够, 测试和生产环境再换成集群, 但是在application.yml中默认的 Redis 单例和集群配置格式是不同的, 如果要用同一套格式兼容两种配置, 需要自定义 RedisConnectionFactory 这个bean的初始化.Spring Boot 3.x 的 redis 配置和 Spring Boot 2.x 是不一样的, 路径多了一个。这样, 当配置改为集群时, 只需要修改 spring.data.redis.host 的内容为。这样的格式就可以了.
2025-09-27 16:14:36
175
原创 CAS存在的问题及在Java中的解决方式
CAS 可以保证对共享变量操作的原子性CAS全称Compare And Swap,比较与交换,是乐观锁的主要实现方式。CAS在不使用锁的情况下实现多线程之间的变量同步。ReentrantLock内部的AQS和原子类内部都使用了CAS。CAS算法涉及到三个操作数:需要读写的内存值V。进行比较的值A。要写入的新值B。只有当V的值等于A时,才会使用原子方式用新值B来更新V的值,否则会继续重试直到成功更新值。
2025-09-27 16:13:56
669
原创 深度解析Spring AI:请求与响应机制的核心逻辑
在这次探讨中,我们聚焦于Spring AI如何有效地发起请求并将响应信息传递给用户。这一过程不仅是开发者与AI交互的桥梁,更是优化用户体验的关键。通过明确的请求结构和响应机制,Spring AI能够灵活地处理各种用户输入,并根据上下文调整回答策略。然后,我们深入分析了这一机制的核心,关注具体实现与业务逻辑。在此过程中,我们通过实例演示阻塞回答与带上下文记忆的回答如何在实际应用中发挥作用。这样的实操不仅能帮助我们更好地理解Spring AI的工作原理,也为将来深入探讨流式回答和函数回调埋下了伏笔。
2025-09-27 16:13:18
1005
原创 JDK线程池详解(全网最全-原理解析、源码详解)
底层是这样的,当一个线程处理完当前任务后,就会开始去阻塞队列中获取任务,只不过,在调用poll或take方法之前, 会判断当前线程池中有多少个线程,如果多余核心线程数(也就是wc > corePlloSize),那么timed为true,此时当前线程就会调用poll()并设置超时时间来获取阻塞队列中的任务,这样一旦时间到了还没有获取到任务,那么poll方法获取到的r就是null,返回给上一级,runWorker()里的getTask方法就获取到null了,此时while循环就会退出。
2025-09-27 16:12:02
850
原创 深入探索Spring AI:源码分析流式回答
在当今的数字时代,流式响应机制不仅提升了系统的性能,还在用户体验上扮演了关键角色。通过引入 Flux 类型,Spring WebFlux 的设计理念使得应用能够以非阻塞的方式处理并发请求,从而有效利用资源并减少响应延迟。我们终于全面讲解了Spring AI的基本操作,包括阻塞式回答、流式回答以及记忆增强功能。这些内容为我们深入理解其工作机制奠定了基础。接下来,我们将继续深入探索源码,重点分析回调函数、实体类映射等重要功能。
2025-09-27 16:11:23
802
原创 高可用之限流-03-Semaphore 信号量做限流
在方法开始时,调用 Semaphore.acquire() 或者 Semaphore.tryAcquire() 来获取permit,并在方法返回前,调用Semaphore.release()来返还permit。常见的用法是:创建Semaphore,指定permit的数量。信号量实际上就是限制系统的并发量,来达到限流的目的。并入并发量问题,比如控制的力度不够灵活细致等。可以看到每次只有一个线程可以执行方法。这种方法最为简单,但是存在很多问题。
2025-09-27 16:10:26
312
原创 Nacos服务注册与发现
由于Nacos是国内产品,中文文档比较丰富,而且同时具备配置管理功能,因此在国内使用较多,所以介绍nacos注册中心管理工具。在微服务调用过程中主要是两个角色一个是服务的消费者,一个是服务的提供者。建立完成api后打jar包然后回到消费者处pom导入内部依赖。1.服务消费者先把自己的服务放在注册中心统一进行管理。这里我使用的是openFeign来进行远程服务的调用。2.服务消费者在需要服务调用时向注册中心发起申请。3.服务消费者根据负载均衡策略进行服务的挑选调用。服务消费者:调用其它微服务提供的接口。
2025-09-27 16:09:25
452
原创 SaaS架构:中央库存系统架构设计
在新零售的多仓多渠道模式下,为了实现全渠道库存共享,库存汇总为“一盘货”管理,要充分考虑各个仓库/门店的特性,包括支持的发货方式,配送范围等,为了合理分配库存,需要考虑各个销售店铺的库存占比。调度层的定位是汇总各仓库/门店的所有库存状态的库存总量,但不同于仓库库存,调度层的实物库存无需管理批号、库位等细粒度的库存维度,只需要管理每个库存状态下的实物库存总数即可,这是一种解耦的设计方式。销售渠道层代表各个销售渠道平台,包括自营的网店、门店渠道,天猫,京东,美团,饿了么等三方平台等。
2025-09-27 15:00:15
681
原创 前端提高篇(四十四)CSS练习3:flex布局(导航栏,两列三列布局)
其中,li设置成inline-block,并在ul上设置font-size为0,消除li之间的空隙;一般两列布局会在父级设置一个最小宽度min-width,当浏览器的宽度小于这个值时,下方出现滚动条,页面从左到右滚动看全貌。当两个子div不能充满父级时,2子由于设置了flex-grow,而1子的flex-grow为0,所以多余的宽度都给了2。两个子div,第一个子div设定宽度,第二个不设宽度,但设置了felox-grow:1;还可以用float,li脱离文档流,让其横放,并清除浮动。
2024-05-17 03:52:12
566
原创 元素滚动 scroll 与 scroll 事件
我们在此主要研究与,其他两个同理一:返回自身的实际高度**()**,返回值无单位,主要针对的是内容超过了盒子大小溢出的情况,返回的值包括了溢出的高度。
2024-05-16 11:23:01
388
原创 React(2)—— React组件、组件实例三大属性、事件处理、受控组件与非受控组件、高阶函数
/ 2. 渲染组件到页面结果为下:代码解释:执行了ReactDOM.render(< MyComponent/>…之后,发生了什么?React解析组件标签,找到了MyComponent组件。发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面中。//2.渲染组件到页面结果如下:代码解释:执行了ReactDOM.render(< MyComponent/>…之后,发生了什么?React解析组件标签,找到了MyComponent组件。
2024-05-13 16:13:52
1021
原创 JS中的Ajax发送请求获取数据流程(2)
catch(err => { //数据获取失败回调。4、制定回调函数解析后台返回数据并将其渲染到页面。1、创建XMLHttpRequest实例对象。//data为请求回来的数据。2、使用open方法发送请求。
2024-05-13 03:34:18
263
原创 Javascript操作DOM常用API总结
23456789101112131415<div id=“parent”> 我是父元素的文本 我是子元素 复制var parent = document.getElementById(“parent”);document.getElementById(“btnCopy”).onclick = function(){ var parent2 = pa
2024-05-12 12:36:31
395
原创 JavaScript入门第六章(数据类型比较 )(2)
(1)小数在进行数学计算时,会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题。(1)NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果。2.isNaN(数据):检测一个数据是不是NaN 得到的结果是布尔类型。(2)解决方案:不要让两个小数比较大小,这种情况一般不会影响正常开发。,在数学上这是一种错误的计算,它的结果就是NaN。(3)NaN与任何数字计算得到的都是NaN。(2)NaN与任何数字都不等,包含它本身。'张三' - 100。
2024-05-12 11:19:02
316
原创 Dubbo如何支持本地调用?InJvm方式解析(1)
ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(InjvmProtocol.NAME); // load}return INSTANCE;}@Overridepublic Exporter export(Invoker invoker) throws RpcException {return new InjvmExporter(invoker, invoker.getUrl().getServiceKey(), ex
2024-05-10 20:55:46
653
原创 【138期】手撸 websocket + netty 实时视频弹幕交互功能(Java版附源码)
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。2a. 由上述可知,实时直播交互作为互动式是一个双向数据传输过程。
2024-05-07 07:17:41
1327
原创 Vue自定义指令和计算属性和侦听器和过滤器(2)
/data: {msg: {},//局部指令,需要定义在 directives 的选项color: {},focus: {el.focus();});
2024-05-07 01:50:25
256
原创 iview使用render函数渲染嵌套表格
使用return h函数返回title: ‘机器名称’,url =} else {url =// 如果不做以上操作可直接使用return h函数返回return h(‘a’, // 元素名称domProps:{href: url,}// 为元素赋属性style: {}// 为元素写样式,驼峰书写格式,值加“”}, // 元素性质on: {}, // 元素事件data.hostname // 元素内容。
2024-05-05 09:22:29
860
原创 【FastDFS】小伙伴们说按照我写的方式在CentOS 8服务器上搭建FastDFS环境总报错?
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!libfastcommon.so[root@binghe libfastcommon-1.0.43]# ls /usr/lib|grep libfastcommonlibfastcommon.so编译安装fastdfs[root@binghe source]# tar -zxvf V6.06.tar.gz[root@binghe source]# cd fastdfs-6.06/[root@binghe fa
2024-05-04 07:18:02
1018
1
原创 Zookeeper+ActiveMQ集群搭建
其它面试题(springboot、mybatis、并发、java中高级面试总结等)《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取![外链图片转存中…(img-FwfU5N5Z-1714771889386)][外链图片转存中…(img-HCmsdgcA-1714771889386)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
2024-05-04 05:31:40
1390
2
原创 Spring原理篇(7)--Spring最经常使用的一个功能 依赖注入, 该功能源码是一定需要知道的;这是我们日常开发中的核心; 了解其源码;这一篇就够了;
XML中的autowire控制的是整个bean的所有属性,而@Autowired注解是直接写在某个属性、某个 set方法、某个构造方法上的;会往BeanWrapper.getWrappedInstance() 这里 保存的值 的内存引用 就是单例池里面的相对应需要注入的哪个Bean. 所以 这里将他注入;这里 就是个ConcurrentMap 也就是删除正在创建的Bean的包装对象;面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了。
2024-05-04 03:33:35
839
原创 springboot整合shiro(1)
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
2024-05-04 01:40:32
673
原创 Spring IOC 容器源码分析
BeanFactory,从名字上也很好理解,生产 bean 的工厂,它负责生产和管理各个 bean 实例。初学者可别以为我之前说那么多和 BeanFactory 无关,前面说的 ApplicationContext 其实就是一个 BeanFactory。我们来看下和 BeanFactory 接口相关的主要的继承结构:我想,大家看完这个图以后,可能就不是很开心了。ApplicationContext 往下的继承结构前面一张图说过了,这里就不重复了。
2024-05-03 23:50:40
841
1
原创 RocketMQ高手之路系列之三:RocketMQ之路由中心
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!}}, 1, 10, TimeUnit.MINUTES);if (TlsSystemConfig.tlsMode != TlsMode.DISABLED) {// Register a listener to reload SslContexttry {fileWatchService = new FileWatchService(new String[] {TlsSystemConfig.tlsServer
2024-05-03 21:39:04
79
原创 openstack上内网环境的最小化linux虚拟机安装桌面服务,给qcow2格式的linux虚拟机安装桌面服务、linux系统模式查看和命令模式永久改为桌面模式(1)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!切换桌面正常安装【跟这做】安装桌面安装成功界面切换桌面永久修改为桌面模式vnc登陆桌面说明=================================================================我VMware最小化安装可以直接看下面有外网的安装方法【文章已经有过修改,而且安装桌面的时候,我是把外网源已经全部移除,做成本地源来实验的,有些内容没写进去和修改,是为了不让文章难度提高(公网
2024-05-03 19:48:50
812
原创 MySQL慢查询,一口从天而降的锅!
文章中涉及到的知识点我都已经整理成了资料,录制了视频供大家下载学习,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
2024-05-03 13:03:41
817
原创 maven运行过程解析
其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。Kafka入门为什么选择KafkaKafka的安装、管理和配置。
2024-05-03 11:11:03
852
1
原创 JVM(五):类文件结构
一般像这样的大企业都有好几轮面试,所以自己一定要花点时间去收集整理一下公司的背景,公司的企业文化,俗话说「知己知彼百战不殆」,不要盲目的去面试,还有很多人关心怎么去跟HR谈薪资。这边给大家一个建议,如果你的理想薪资是30K,你完全可以跟HR谈33~35K,而不是一下子就把自己的底牌暴露了出来,不过肯定不能说的这么直接,比如原来你的公司是25K,你可以跟HR讲原来的薪资是多少,你们这边能给到我的是多少?你说我这边希望可以有一个20%涨薪。
2024-05-03 09:27:54
868
原创 Java课程设计(2024版)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!课程设计的题目有两大类:1. 传统题目Java课程设计任务书里面的题目。详见:Java课程设计参考资料Java的一些小任务,可将里面的任务改造成课程设计。2. 综合性题目(有一定挑战性、有趣、实用)可根据自己的想法自己出题,出提前最好和老师交流,以确定题目是否可行。较难,完成周期长,需要提前启动。因为需要使用到诸多技术,综合性较强、难度大。网页解析工具。可用于简单的爬虫,爬取网上信息。使用Java代码操作HT
2024-05-03 07:43:31
784
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅