- 博客(17)
- 收藏
- 关注
原创 SpringBoot 自动装配原理
DeferredImportSelector 实现了 ImportSelector,那此时我们就就可以知道在AutoConfigurationImportSelector 类中,一定实现了 ImportSelector 类的。我们可以在启动类上加上一个@Import(Xxx.class),这时Spring就会把Xxx类对应的Bean对象注入到 Ioc 容器中。此时的主程序类是扫描不到配置类的,此时在主配置类的就可以@Import注解,将配置类导入到Ioc容器中。尽管这种方法可以,但会使代码看的臃肿。
2025-07-20 15:42:39
1097
原创 SpringBoot配置文件的优先级
在 SpringBoot 项目中,想要配置一个属性,可以通过这三种方式当中的任意一种来配置就可以,但是如果项目中同时出现了这三个文件配置,且配置了同一个属性,那么它们的优先级是如何呢,下面我们以设置Tomcat端口号为例,会在哪一个配置文件中会优先生效?得出结论:在三个文件同时存在且配置同一个属性的情况下,application.properties。注意:虽然springboot支持多种格式配置文件,但在实际开发项目中,使用一种即可,推荐使用。所以:在三个文件同时存在且配置同一个属性的情况下,
2025-04-30 15:07:40
571
原创 使用redis中的zset实现滑动窗口算法
滑动窗口算法是一种常用的限流(Rate Limiting)技术,用于控制在一定时间窗口内的请求速率。相比其他限流算法(如固定窗口算法),滑动窗口算法具有更高的精度和灵活性。而滑动窗口算法通过动态调整窗口边界和清理过期请求,实现了对任意时间段内请求数量的精确控制。固定窗口算法的实现基于Redis 的计数器功能,能够轻松应对大多数基本的限流需求。
2025-04-25 14:58:33
610
原创 CountDownLatch 的介绍与使用
在日常开发中经常会遇到需要在主线程中开启多个线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后再进行汇总的场景。
2025-04-25 14:37:53
417
原创 Redis实现分布式锁
Redis 锁是一种机制,用于在分布式环境中协调多个客户端对共享资源的访问。通过使用 Redis 实现分布式锁,可以确保在同一时间只有一个客户端能够访问或修改特定的资源,从而避免竞争条件和数据不一致的问题。Redis 锁通常基于 Redis 的一些特性实现,如键过期、原子操作等。
2025-04-16 19:57:49
1004
原创 定时任务框架(Spring Task)的介绍与使用
构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)
2025-01-19 15:59:02
362
原创 ThreadLocal的介绍与使用
ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。ThreadLocal并不是一个Thread,而是Thread的局部变量(同一个线程共享数据)publicvoidset(Tvalue)设置当前线程的线程局部变量的值。publicvoidremove()移除当前线程的线程局部变量。publicTget()返回当前线程所对应的线程局部变量的值。在使用完之后一定要移除当前线程的线程局部变量,防止内存溢出。
2025-01-19 15:52:08
405
原创 Spring Boot中实现国际化
在Spring Boot中实现国际化(i18n)是一个常见得需求,它允许应用程序根据用户的语言和地区偏好显示不同的文本。
2024-11-22 12:24:19
762
原创 单点登录(SSO)的设计与实现
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。当我们访问其中一个前台系统需要登录才可以访问的页面时,自动跳转到登录中心进行登录,登录后再次跳转回该前台系统,该前台系统可以获取登录名。
2024-11-10 22:38:15
3170
原创 Kubernetes(K8S)简介和安装部署详细教程
Kubernetes([kubə'netis])是一个由Google 开源的全新的分布式容器集群管理系统,由于从字母K到字母s中间有8个字母,所以简称K8s。
2024-11-04 18:22:11
6501
原创 [上传文件异常:The temporary upload location [/tmp/tomcat.xxxxxxx/work/Tomcat/localhost/ROOT\] is not valid
一个长久没更新过的spring boot项目突然间文件上传错误,异常信息如下,此原因主要问题是tomcat默认的临时目录没了,项目运行的服务器每隔一段时间会清除 /tmp 临时目录,项目每次启动都会创建临时目录。方案一:重启项目,每隔一段时间重启,可以跟 /tmp 清除周期保持一致(一般是10天左右)在指定临时目录时,切记不要指定 /tmp 目录。修改 SpringBoot 的配置文件。
2024-09-20 13:18:28
1240
原创 SpringBoot下使用RestTemplate实现远程服务调用
现如今的项目,由服务端向外发起网络请求的场景,基本上处处可见。RestTemplate是一个执行HTTP请求的同步阻塞式工具类,它仅仅只是在 HTTP 客户端库(例如 JDK HttpURLConnection,Apache HttpComponents,okHttp 等)基础上,封装了更加简单易用的模板方法 API,方便程序员利用已提供的模板方法发起网络请求和处理,能很大程度上提升我们的开发效率。
2024-09-19 22:03:51
1427
原创 使用Mybatis-Plus实现多数据源配置
dynamic-datasource-spring-boot-starter` 是一个用于 Spring Boot 项目的数据源动态切换库,可以在运行时动态切换数据源,非常适合多数据源场景。
2024-09-18 16:05:59
754
原创 MySQL的书写顺序和执行顺序
6.having 在group by了之后,再度指定筛选条件;注意where和having是不同的,主要在于中间多了group by。5.group by 把指定字段相同的行组合在一起,其余没有加入group by的字段,可以用聚合函数如max/min等合并。2.join 一个表可能还不够,两个表甚至多个表都可以,关联条件啥也先不用,可以都来个笛卡儿积先。3.on 在诸多表左右连接后,设定两个表之间的关联键,把不符合条件的全部筛掉。7.select 在行层面的处理暂告一段落,在列层面再来一波。
2024-09-09 09:45:10
498
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅