- 博客(39)
- 收藏
- 关注
原创 设计模式之【原型模式】详解
原型模式属于创建型模式,所以它是描述如何创建对象的模式。顾名思义,先搞一个原型对象出来,然后在这个原型对象的基础上修修补补再弄出一个新对象来。其核心是重写Object中的clone方法,调用该方法可以在内存中进行对象拷贝。这种模式的主要目的是为了提高性能和复用现有对象的状态。关键字就是Clone。
2025-04-08 08:13:08
521
原创 设计模式之【桥接模式】详解
桥接模式(Bridge Pattern)是一种结构型设计模式,通过将抽象部分与实现部分分离,使二者可以独立变化。它使用组合关系代替继承关系,避免因多层继承导致的类爆炸问题。通过桥接模式,可以在运行时动态地给一个抽象化的对象设置不同的实现化对象,这样就能够在不改动代码的情况下增加新的实现或者改变现有的实现。
2025-04-08 08:11:28
283
原创 设计模式之【工厂模式】详解
工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。通过使用工厂模式,可以将对象的创建逻辑封装在一个工厂类中,而不是在客户端代码中直接实例化对象,这样可以提高代码的可维护性和可扩展性。在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。
2025-04-07 08:36:30
672
原创 设计模式之【单例模式】详解
单例模式(Singleton Pattern)是一种常用的软件设计模式,其核心思想是确保一个类仅有一个实例,并提供一个全局访问点来获取这个实例。单例模式主要用于控制资源的访问,比如配置文件的读取,数据库的连接等,通过确保这类资源全局只有一个实例,既可以避免对资源的多重占用,又可以减少系统的性能开销。*** 饿汉式:预加载* 静态成员变量*///定义静态成员变量获取本类的实例//私有构造方法,避免通过new关键字来实例化对象,保证只存在一个实例//提供一个公共的访问类,让外界获取该对象。
2025-04-07 08:35:38
521
原创 如何保证Redis和MySQL数据的一致性解析
由缓存的调用者在进行更新数据库的同时更新缓存**更新数据:**在进行数据库数据修改的时候,一般都是删除缓存,然后缓存为空,等待查询时候判空再进行数据库的查询然后更新缓存,而不是每次去做更新数据都进行更新缓存操作。
2025-04-06 09:33:20
357
原创 设计模式之【组合模式】详解
组合模式(Composite Pattern)是一种结构型设计模式,用于将对象组合成树形结构以表示"整体-部分"的层次关系。通过让客户端以统一的方式处理单个对象和组合对象,实现了对树形结构中所有节点的透明化操作。核心思想:通过共享接口,使得叶子节点(单个对象)和容器节点(组合对象)可以被一致对待,客户端无需关心操作的是单个对象还是组合结构。
2025-04-06 09:32:40
1239
原创 快速了解Websocket技术
WebSocket是一种全双工网络通信协议,它提供了在单个TCP连接上进行全双工通信的渠道。WebSocket使得客户端(通常是浏览器)和服务器之间可以进行持续的双向数据交换。传统的HTTP协议是请求/响应模式,即客户端发起请求后,等待服务器响应;而WebSocket允许服务器主动向客户端推送信息,同时也允许客户端与服务器进行实时通信。
2025-04-05 10:07:18
937
原创 Spring中事务失效的原因详细解析
在同一个类内部,一个方法直接调用另一个带有 @Transactional 注解的方法时,调用的是对象的实际方法,而不是通过代理对象调用,因此事务增强逻辑不会被触发,导致事务失效。如果在一个带有事务的方法中开启了新的线程进行数据库操作,新线程中的操作不会参与到原线程的事务中,即使原线程的事务出现异常回滚,新线程中的操作也不会回滚。原因:Spring 的事务管理需要配置相应的事务管理器。如果没有正确配置事务管理器,或者在使用 @Transactional 注解时没有指定正确的事务管理器,事务将无法正常工作。
2025-04-05 09:49:20
416
原创 解决remote: error: GH007: Your push would publish a private email address.
注意:请将user.email更改为GitHub分配给您的电子邮件。它位于https://github.com/settings/emails。
2025-04-05 09:41:01
107
原创 升级JDK17,报错:Exception java.lang.reflect.InaccessibleObjectException: Unable to make protected native
在 JDK1.8 及之前,这个属性是打开的,意思就是 1.8 前会反射出里面的所有方法。我们都知道反射会消耗性能。然而这些方法的使用频率不高,为了这些比较少调用的代码牺牲这些性能不值得,所以从 JDK1.8 后大量包的可访问反射属性都被关闭了,lang 就是其中之一。JDK17中把 accessiable 属性设置为 false 了。翻译:”base 模块中没将 lang 模块打包到未命名模块。
2025-04-03 18:40:12
196
原创 基于SpringCloud的商城项目之Elasticsearch(下)
精确查询,英文是Term-level query,顾名思义,词条级别的查询。也就是说不会对用户输入的搜索条件再分词,而是作为一个词条,与搜索的字段内容精确值匹配。css样式肯定是前端实现页面的时候写好的,但是前端编写页面的时候是不知道页面要展示什么数据的,不可能给数据加标签。而服务端实现搜索功能,要是有elasticsearch做分词搜索,是知道哪些词条需要高亮的。当我们利用match查询时,文档结果会根据与搜索词条的关联度打分(_score),返回结果时按照分值降序排列。bool查询,即布尔查询。
2025-03-09 19:43:03
642
原创 高并发下订单库存防止超卖策略
在并发的场景下,比如商城售卖商品中,一件商品的销售数量>库存数量的问题,称为超卖问题。主要原因是在并发场景下,请求几乎同时到达,对库存资源进行竞争,由于没有适当的并发控制策略导致的错误。
2025-03-09 19:41:55
460
原创 基于SpringCloud的商城项目之Elasticsearch(上)
Elasticsearch的关键就是倒排索引,而倒排索引依赖于对文档内容的分词,而分词则需要高效、精准的分词算法,IK分词器就是这样一个中文分词算法。其中的id字段已经创建了索引,由于索引底层采用了B+树结构,因此我们根据id搜索的速度会非常快。综上,根据id精确匹配时,可以走索引,查询效率较高。虽然要先查询倒排索引,再查询词条的正排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快!根据rest风格,新增是post,查询应该是get,不过查询一般都需要条件,这里我们把文档id带上。
2025-02-28 21:23:08
950
原创 基于SpringCloud的商城项目之MQ(下)
在开启确认机制的情况下,当生产者发送消息给MQ后,MQ会根据消息处理的情况返回不同的回执。比较优雅的一种处理方案是RepublishMessageRecoverer,失败后将消息投递到一个指定的,专门存放异常消息的队列,后续由人工集中处理。极端情况就是消费者一直无法执行成功,那么消息requeue就会无限循环,导致mq的消息处理飙升,带来不必要的压力。可以设置最大重试次数。注意:在开启持久化机制以后,如果同时还开启了生产者确认,那么MQ会在消息持久化以后才发送ACK回执,进一步确保消息的可靠性。
2025-02-25 08:57:25
775
原创 基于SpringCloud的商城项目之Sentinel、Seata
XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。虽然每个单独的业务都能在本地遵循ACID,但是它们互相之间没有感知,不知道有人失败了,无法保证最终结果的统一,也就无法遵循ACID的事务特性了。这就像是水电站的大坝,起到蓄水的作用,可以通过开关控制水流出的大小,让下游水流始终维持在一个平稳的量。
2025-02-24 10:04:02
856
原创 基于SpringCloud的商城项目之Nacos、OpenFeign、Gateway
技术栈:Spring Cloud Alibaba、Spring boot、MyBatis-Plus、RabbitMQ、ElaticSearch、Docker。服务划分:用户服务(UserService)、商品服务(ItemService)、购物车服务(CartService)、支付服务(PayService)、交易服务(TradeService)。
2025-02-24 10:02:51
798
原创 论文研读之Cross-Domain Few-Shot Object Detection via Enhanced Open-Set Object Detector
跨域小样本目标检测模型研读。
2025-01-21 15:35:21
1059
原创 【养老项目】重点!!项目学习心得图解day14 基于WebSocket的消息实时提醒
WebSocket支持双向通信,它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建。WebSocket并不能完全取代HTTP,它只适合在特定的场景下使用。WebSocket是长连接,受网络限制比较大,需要处理好重连。当设备上报数据的时候,我们需要根据报警规则进行过滤。
2025-01-15 09:42:57
240
原创 【养老项目】项目学习心得图解day13 基于阿里云iot平台的消息处理
每次数据库存新的设备数据时,都在缓存存一份,使得最新的设备数据在缓存中留一份。由于可能有多个设备,每个设备有多个监控指标,每个指标可能每分钟就会更新一次,这样数据库对应的表数据量会特别大。如果客户端需要查看设备数据时,直接去数据库找效率特别低。而缓存只存当前最新的一份数据,需要直接去缓存找效率高。AmqpClient实现ApplicationRunner接口,启动类启动时自动调用run方法,run方法调用start方法。
2025-01-15 09:41:35
322
原创 论文研读之“YOLO v1”目标检测深度学习算法一文看懂,YOLO开篇之作,必读!
YOLO开篇之作,必读!YOLO v1详细解读,附图片分析。
2025-01-14 09:58:50
1015
原创 【养老项目】项目学习心得图解day12 基于阿里云iot平台的智能设备管理
在后台管理系统中,是需要自己维护设备,不需要创建产品,因为产品直接物联网平台创建添加即可。需要单独维护设备的原因是,设备需要跟养老院的老人或者位置进行绑定,才能做到精准的监控。
2025-01-14 09:55:35
262
原创 论文研读之“Faster RCNN”目标检测深度学习算法一文看懂
Faster-RCNN作为一种two-stage的算法,与one-stage的算法相比,two-stage的算法更加复杂且速度较慢,但是检测精度会更高。
2025-01-10 09:28:21
1773
原创 The server socket has failed to bind to ?UNKNOWN? (errno: 98 - Address already in use).
当一个进程持续杀不死,杀死之后换一个PID继续占用该端口时,可能是有一个父进程持续生成占用该端口的子进程。,根据返回信息获取父进程号,杀死该父进程。,查看当前使用该端口的进程,得到进程号。
2025-01-10 09:26:42
272
原创 RuntimeError: CUDA error: CUBLAS_STATUS_NOT_SUPPORTED when calling `cublasSgemmStridedBatched
解决bug
2025-01-09 14:52:18
568
1
原创 【养老项目】《重点!!》项目学习心得图解day06(二) 权限认证-数据权限
数据权限:对于同一类数据,拥有不同角色的用户看到的数据可能是不同的。一共有五种数据范围(数据权限) :(1)本人 : 只能看到自己创建的数据(2)本级 : 只能看到本部门创建数据(3)本级及子级 :可以看到本部门和本部门以下所有子部门的数据(4)全部: 全部的数据,不筛选。(5)自定义数据 : 当你选择自定义数据时,会让用户选择部门,该角色只可以看到这些部门创建的数据。查询业务数据时就可以按照该数据权限所属范围进行筛选。
2025-01-08 09:59:09
230
原创 “Java岗八股文”2025版史上最新最全超详细易理解,面试必备(一)Spring篇
本文包含Spring相关的面试必备八股文,带代码和图帮助理解。
2025-01-08 09:57:12
749
原创 【养老项目】《重点!!》 项目学习心得图解day06(一)权限认证-SpringSecurity&JWT
JwtAuthorizationManager是一个授权管理器,它实现了SpringSecurity的AuthorizationManager接口,用于处理用户的授权逻辑。核心功能验证用户的userToken和jwtToken。检查用户是否被剔除。根据请求的路径和用户权限,决定是否允许用户访问资源。处理jwtToken的续期逻辑,确保令牌在接近失效时可以延长有效期。
2025-01-06 10:28:34
443
原创 【养老项目】《重点!!》项目学习心得图解day04(一)部门管理&spring cache
养老项目的部门管理,集成Spring cache解决缓存问题,还使用事务管理保证数据一致性、完整性和可靠性。
2025-01-02 20:36:43
257
原创 【养老项目】项目学习心得图解day03预约管理 xxl-job定时任务
养老项目分为两端,分别是管理后台和小程序端(家人端),day01和day02开发的功能都属于管理端。预约功能属于小程序端的功能,如果有客户对养老院比较感兴趣,也可以在小程序端发起预约参观,不过在发起预约的时候,我们需要获得到客户的手机号,需要用户登录后才能预约,所以在做预约功能之前,我们先来完成微信登录的功能。
2024-12-26 21:23:39
591
4
原创 【养老项目】项目学习心得图解day01-02 护理项目管理 阿里云oss
中州养老实现思路流程图。它是一款智能化养老服务管理系统,涵盖了智能健康监测、权限管理、订单管理等多个功能模块,旨在为养老服务机构提供信息化管理方案,同时实时握老人的健康状况和护理情况,提高服务质量,减少管理成本。技术栈:SpringBoot+SpringMVC+MyBatis+Vue.js+MySQL工作内容:前端开发采用Vue3+TyepScript+TDesign完成页面开发和交互采用Redis+SpringCache进行缓存处理采用阿里云OSS对象存储来存储项目中的文件。
2024-12-23 22:17:25
408
原创 论文研读之TPSeNCE-去雨和雨天目标检测
不幸的是,由于合成和自然雨天图像之间存在很大的域差距,这些方法不能很好地推广到现实世界的雨天图像。**然而,传统的基于模型的雨生成方法,依赖于过于简化的假设和手工设计的先验,无法准确地模拟不同类型的真实降雨。相比之下,数据驱动的深度学习方法,例如像 UNIT [23] 这样的不成对的图像到图像翻译方法,已经证明了它们在不同天气条件下翻译图像的能力。例如,如果图像的鉴别器输出矩阵是一个 100x100 的矩阵,则矩阵中的每个元素表示对应像素点为真实像素点的概率,取值范围为 0 到 1。
2024-04-04 10:10:24
2350
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人