- 博客(15)
- 收藏
- 关注
原创 HashMap和ConcurrentHashMap区别详解
HashMap是一个非线程安全的实现,适合单线程或外部同步的情况。是一个线程安全的实现,适用于高并发的多线程环境,它通过分段锁和更细粒度的锁来保证线程安全,从而提高并发性能。如果你在多线程环境中使用Map,而且不想自己手动同步,那么是更好的选择。
2025-02-17 17:38:03
824
原创 MySQL 的主从复制
MySQL 主从复制是一种常见的数据库高可用和负载均衡解决方案,能够将主服务器的数据实时复制到一个或多个从服务器。通过合理配置主从服务器,可以实现数据备份、负载均衡和灾难恢复等功能。需要注意的是,复制过程中的延迟和一致性问题需要仔细调优,以确保复制系统的稳定性和可靠性。
2025-01-03 16:38:59
669
原创 SpringBoot自动装配
如果 Spring Boot 的默认自动装配不符合你的需求,你可以创建自己的自动装配类。创建一个配置类并使用注解标注它,表示这是一个 Spring 配置类。在这个配置类中,你可以根据项目的条件(如依赖是否存在、属性是否设置等)来装配相应的 Bean。@ConditionalOnClass(SomeLibrary.class) // 如果 SomeLibrary 类存在,才自动装配@BeanSpring Boot 的自动装配是其强大和易用的核心特性之一,允许开发者避免繁琐的配置工作。
2025-01-03 16:34:04
855
原创 MQTT协议
MQTT是一个高效、轻量、可靠的消息传输协议,特别适用于带宽受限、网络不稳定的环境中,广泛应用于物联网、远程控制、实时消息传递等场景。通过发布/订阅模式、QoS等级、持久会话等机制,MQTT为设备间的通信提供了很好的支持。
2024-12-19 12:03:06
847
原创 @PostConstruct 注解详解
是 Java 中的一个注解,通常用于在 Spring 容器初始化后执行某些操作。它是 JSR-250 规范的一部分,可以用于标记一个方法,这个方法会在类的依赖注入完成后自动执行。通常用于初始化操作或执行一些配置工作。
2024-12-19 11:51:28
4697
1
原创 spring security认证和授权+Redis缓存+jwt登录体系
/ 从 Redis 获取用户信息通过整合JWT和Redis,我们可以设计一个现代化、无状态、性能高效且安全的认证与授权系统。JWT 提供了无状态的身份验证,而 Spring Security 则提供了强大的权限控制功能,Redis 则帮助我们缓存用户信息,提高性能并减少数据库查询次数。
2024-12-19 11:34:56
1260
原创 2024最后一个月打卡
提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。提示:职业规划、创作规划等。多练习、多交流、多实践。
2024-12-01 15:14:19
184
原创 SpringBoot实现微信公众号消息推送
微信公众号的消息推送功能可以广泛应用于各种场景,帮助企业或个人与用户进行即时互动,以下是一些常见的场景。
2024-11-30 17:31:55
991
原创 websocket前后端集成通信
在 WebSocket 出现之前,我们想实现实时通信、变更推送、服务端消息推送功能,我们一般的方案是使用 Ajax 短轮询、长轮询两种方式:比如我们想实现一个服务端数据变更时,立即通知客户端功能,没有 WebSocket 之前我们可能会采用以下两种方案:短轮询或长轮询1、HTTP 协议包含的较长的请求头,有效数据只占很少一部分,浪费带宽2、短轮询频繁轮询对服务器压力较大,即使使用长轮询方案,客户端较多时仍会对客户端造成不小压力。
2024-10-13 18:41:34
1563
原创 nacos配置中心详解
在微服务架构中,配置中心就是统一管理各个微服务配置文件的服务。把传统的单体项目包拆分成多个微服务后,配置文件也要拆分,每个微服务都要有自己的配置文件。为了统一维护,方便管理,所以出现了配置中心的概念。所有的微服务配置文件都在配置中心中管理和读取,因此,出现了配置中心的概念。提供配置中心的服务有Nacos,Apollo等,这里我们讲解Nacos的配置中心功能。配置中心就是一种统一管理各种应用配置的基础服务组件,它将将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置。
2024-05-09 11:53:52
1451
2
原创 拦截器interceptor中获取自定义注解annotation的信息
注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。自定义注解可作用在有类、接口、方法、属性、参数等,它由定义注解接口上的@Taeget配置决定。笔者ayan也是第一次写这种文章,还有很多不足,但会不断努力滴,多多关注噢铁汁们 都多余了噢,爱谁谁~好了以上就是本文的全部内容,这些是在笔者学习工作过程中的一点点总结,希望能对有需要的铁汁提供学习和帮助。判断是否存在我们需要的自定义注解,并进一步获取注解的属性值。这里会容易出现一个错误,就是转换失败的问题!
2023-11-16 16:34:56
1952
1
原创 线程池原理
Thread是一个重量级的资源,创建、启动以及销毁都是比较耗费系统资源的,因此对线程的重复利用一种是非常好的程序设计习惯,加之系统中可创建的线程数量是有限的,线程数量和系统性能是一种抛物线的关系,也就是说当线程数量达到某个数值的时候,性能反倒会降低很多,因此对线程的管理,尤其是数量的控制更能直接决定程序的性能。如果池子中的线程数量不够应付数量众多的任务时,则需要自动扩充新的线程到池子中,但是该数量是有限的,就好比池塘的水界线一样。当任务比较少的时候,池子中的线程能够自动回收,释放资源。用于缓存提交的任务。
2023-06-16 11:42:01
424
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人