- 博客(109)
- 收藏
- 关注
原创 spring-ioc-bean
本文介绍Spring IoC基础应用,涵盖Bean创建与管理,包括依赖查找/注入、XML与注解配置、组件扫描、@Autowired自动装配、Aware回调接口、FactoryBean、作用域及生命周期。重点讲解基础使用,不涉及高级原理。
2025-03-05 15:28:40
791
原创 Tomcat&Servlet
本文讲解Tomcat配置部署及Servlet核心技术,涵盖Tomcat目录结构、Web应用部署方式、IDEA集成,Servlet生命周期、请求处理机制、三大作用域对象,以及过滤器与监听器原理。重点解析请求转发与重定向区别,演示Filter日志记录和ServletContextListener应用场景,为Java Web开发奠定基础。
2025-03-05 15:19:01
889
原创 ruoyi-vue-plus 引入 ShardingSphere-JDBC 实现分库分表
我们对 test_demo 表进行分表 test_demo0, test_demo1,根据 id 字段对2取模。eg,订单的主子表,都需要分片,主表和子表分片的规则和字段需要相同,比如都根据order_id字段。我们对需要分库分表的方法手动指定 sharding 的数据源即可实现执行分库分表的策略。提一下这里的id还是使用的 mybatisplus 的主键策略。可以减少关联子表sql执行的数量->路由只会使用主表的路由。会按照id sharding策略去搜索指定的表。可以看到会被路由到不同的表上。
2025-01-23 15:27:21
499
7
原创 MySQL-日志与主从复制(包含如何中途加入从节点)
双主双从[mysqld]# 服务器唯一id,默认值1# 设置日志格式,默认值ROW# 是否只读,1 代表只读,0 代表读写# 二进制日志名,默认binlog# 设置需要复制的数据库,默认复制全部数据库# 设置不需要复制的数据库#进入容器:env LANG=C.UTF-8 避免容器中显示中文乱码#进入容器内的mysql命令行#修改默认密码校验方式-- 创建slave用户-- 设置密码-- 授予复制权限-- 刷新权限# 记下`File`和`Position`的值。
2025-01-22 15:12:32
211
原创 MySQL-锁
对于普通索引,12,312,4加临键锁(锁住所有满足的行和前面的间隙->也包括第一条满足行之前的间隙),14,10(第一条不满足的行)加间隙锁(锁住最后一条满足的行后面的间隙)加行锁的时候会添加表的意向锁,后续加表锁的时候会直接判断是否存在意向锁,而不用每一行去判断行锁。,必须要搜索到的行加临键锁(锁住当前行和之前的间隙),对下一个不满足条件的行加间隙锁(锁住当前满足行和之后不满足行的间隙)会对下一行没有搜索到的记录加行锁+间隙锁->因为普通索引可重复,所以只锁定这一行是不够的,
2025-01-20 11:44:44
705
1
原创 mysql -> 达梦数据迁移(mbp大小写问题兼容)
管理工具启动路径 F:\dmdbms\tool manager.exe。初始化程序启动路径 F:\dmdbms\tool dbca.exe。F:\dmdbms\data\DAMENG\ 下的 dm.ini。创建同名模式,指定模式拥有者TEST。注意后面初始化需要忽略大小写。ps: 框架内可以使用。
2025-01-08 17:00:00
563
原创 oracle
Win10安装Oracle 19c+PLSQL 14.0Docker安装Oracle(超详细,清晰)_docker oracle_心 灵的博客-优快云博客配置 plsql乱码问题处理窗口分辨率问题http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 中查找版本一致的版本查询我这里选择大版本一致的分页实现 补充介绍 是在查询语句扫描每条记录时产生的,所以不能使用“大于
2025-01-08 16:44:00
746
原创 jvm-基础篇
方法->涉及到一些字节码底层方法的学习这块主要涉及到一些 字节码方法的学习,难度还是比较高的# -cp 以指定的主启动类启动 java -cp sa-jdi.jar sun.jvm.hotspot.HSDB/*** 打破双亲委派机制 - 自定义类加载器*/try {try {System.out.println("自定义类加载器加载失败,错误原因:" + e.getMessage());// 输出详细的堆栈信息@OverrideClass<?
2024-12-30 17:37:00
930
原创 SpringCloudAlibaba-Sentinel-熔断与限流
return "限流测试使用注解, 返回指定的字符串";return "服务不可用, 这是自定义返回的字符串";
2024-10-28 11:55:22
955
原创 SpringCloudAlibaba-Nacos
/</</注册中心,配置中心及动态刷新广播通知Spring Cloud Alibaba 参考文档 (spring-cloud-alibaba-group.github.io)
2024-10-20 18:18:07
757
原创 SpringCloud-OpenFeign-服务接口调用
把需要暴露的api使用接口来暴露,客户端需要调用的时候,直接查看这个接口中有没有就可以了。最后一个案例可以看到,openfeign 天生支持负载均衡。主启动类 @EnableFeignClients。common 引入 openfeign。read-timeout 默认 60s。调整后测试,发现3s后就异常返回。同时存在,细粒度的覆盖粗粒度的。HttpClient5 开启。手动配置(服务级别)
2024-10-14 22:19:39
626
原创 JUC-线程池
这里是在讲 为了区分在不同场景下 调用的不同组实现方法Executor我们把实现了Runnable或者Callable接口的任务提交给线程池Executor框架负责任务的执行提交任务可以使用submit和executeExecutorService 中 execute 和 submit 的区别ExecutorService 中的 execute 和 submit 方法都用于提交任务,但它们有一些关键区别:1.返回类型:execute(Runnable command): 这个方法没有返回值。
2024-10-10 17:28:54
951
1
原创 Redis-分布式锁
调用 lua 脚本,教程实现 hello lua注意 0 作为唤醒词实现 set expire getredis.call 用来调用命令,最后一个需要返回使用 returnmset 重在掌握 lua脚本中 args传参的用法2 -> key argv 数量k1 k2 -> key1 key2 前两个 key,后面都是 argv官网lua脚本 如何执行呢elsereturn 0end补充说明 if elseif else。
2024-10-10 16:50:21
1192
1
原创 Redis-缓存过期淘汰策略
2个维度过期键中筛选 allkeys所有键中筛选volatile4个方面lru 最少使用,最长时间未被使用lfu 最不常用,一段时间内使用次数最少random 随机ttl。
2024-10-09 11:31:50
809
原创 Redis-缓存一致性
自己的理解,只要是写缓存的方式,都会存在线程写入先后导致的数据不一致监听 binlogHomecanal 选择版本 1.6.1mysql: 5.7 docker环境安装。
2024-10-08 15:38:37
1788
2
原创 Redis-预热雪崩击穿穿透
有这两种原因恶意请求不存在的数据案例fpp 默认 0.03fpp要求越高,bit位数越多,hash函数越多guava 黑名单使用对比穿透和击穿互斥更新->对于更新的方法聚划算案例功能分析数据结构使用 list代码测试类测试方法,先跑主启动类(后台更新聚划算商品信息),然后手动执行测试类测试查询问题分析delete 执行间隙,这一瞬间缓存击穿,打到mysql解决小总结
2024-10-02 10:48:57
1085
原创 Redis-持久化机制
配置文件redis 6.0.16 及其以下补充一张来自于的图片写回策略,对应图中的 3 也即上面个图的 fsync 策略。
2024-10-01 11:12:34
1274
原创 redis-数据类型
这里的key使用的是用户id,然后偏移量表示天数,value和之前一致,便于统计某个用户累计签到(与之前统计系统某一段时间用户签到量做对比)节点在操作锁资源的时候,setnx lock uuid,操作完毕 del lock。一种只需要占用很小的内存就能计算很多元素集合的基数的数据结构。有一个自增id,节省空间,bitmap 索引是从1开始的。有元素权重的 set,跳表实现,快速的范围查询,排行榜。应用场景-》某个用户关注的所有up。队列,先进先出,很方便的做分页查询。统计某个网页的UV、某个文章的UV。
2024-09-30 21:09:59
939
1
原创 mysql-索引
2.最佳左前缀带头大哥不能死,中间兄弟不能断case`name` VARCHAR(24)NOT NULL DEFAULT'' COMMENT'姓名',`age` INT NOT NULL DEFAULT 0 COMMENT'年龄',`pos` VARCHAR(20) NOT NULL DEFAULT'' COMMENT'职位',`add_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT'入职时间'
2024-09-29 12:04:33
1231
原创 rabbitmq
用途● 流量削峰最大处理量如果是一秒一万条订单,一秒钟来了两万条,可以先存在消息队列里面,按照能力去消费处理● 应用解耦下单后,需要去调用很多其他系统,使用我们的发布订阅,让需要接受这条消息的服务监听这个queue● 异步处理在我们一些需要异步调用的场景中,回调核心概念生产者交换机(需要重点理解)接受生产者的消息,并按照规则推到队列里面,这些规则的配置可以实现不同场景的需求队列消费者安装docker。
2024-07-12 10:50:00
2293
原创 oracle 的一些使用记录
其实分析以后,很大一部分原因还是我这边用的工具类,如果使用 getTimestamp 方法去取的话,就没有这个问题了。在使用jdbc结合反射去读查询到的行的时候,默认返回类型是 oracle.sql.TIMESTAMP。原因:在 update 和 insert 操作以后,没有 commit 异常关闭连接。转换成了 java.sql.TimeStamp 类型。问题描述:当执行update语句的时候,执行超时。这个类型在 序列化以及后面的使用都会很不方便。这里我手动添加了转换。
2023-05-16 15:46:59
216
原创 用一个转账问题串联起java数据库访问层技术
此时调用时,无需dao层传入 connection,使用了 threadlocal 已保证这个线程中拿到的connection为同一个。注意一个小细节,在手动 close connection 的时候,配置连接自动提交为 true,避免后面拿到的连接的默认开始了事务。mybatis 版本的和这个基本一致,因为 我们在做整合的时候也是在 mybatis 中使用 spring 的事务管理器。此时在做事务操作需要调用dao层时,需要手动传入 connection 保证两次操作的连接时同一个连接。
2023-03-30 14:14:34
448
原创 跟着开源项目学java8-从支持最大密码重试次数的提交看redis的场景化使用和基于jdk的schedule的异步延迟日志记录策略
schedule 若依 登录次数限制 redis
2023-01-09 11:27:16
692
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人