
Java后端进阶
文章平均质量分 63
xyyf
后端java开发,写博客主要是对平时工作和学习中的一些笔记记录,热爱编程!钻研技术!时时记录!天天进步!
展开
-
定位OOM(Out of Memory)
其中-XX:HeapDumpPath=xxx是发生oom时保存记录文件的路径。例如:visualvm_jdkhome="D:\jdk18"打开etc下的visualvm.conf添加jdk目录。双击运行bin目录下的exe文件即可。通过官网下载后的压缩包进行解压。成功找出问题出现位置。原创 2024-07-01 14:49:35 · 582 阅读 · 0 评论 -
synchronized对象锁和类锁
顾名思义 对象锁可以锁住同一对象下synchronized修饰的方法,但不会影响其他对象。synchronized修饰普通方法就为对象锁。类锁static synchronized修饰一个方法,当一个线程在执行该方法时,其他任何线程用任何对象调用static synchronized修饰的方法都需要等待。原创 2024-05-10 14:19:05 · 687 阅读 · 0 评论 -
Mysql主从复制
source_log_file:binlog文件名(mysql-bin.000008)source_password:赋权主从的用户的密码('Root@123456')Slave_SQL_Running为读取relaylog执行sql操作到本地的。INSERT into tb_user VALUES(1,'小明','0');Slave_IO_Running为读取binlog二进制日志的。source_log_pos:运行位置(6564104)source_user:赋权主从的用户('abc')原创 2024-05-06 20:15:48 · 537 阅读 · 0 评论 -
枚举、策略模式、工厂设计、模板设计使代码更加优雅
以上的业务逻辑outLetter是没有返回值的,现在我提升一下需求,tag为0,1,2时我需要输出对应字母,而tag为3,4时我要获取到对应字母。这样的需求根据现在的代码只能在总接口加一个返回值String类型的getLetter方法,但是这样所有的实现类都需要实现这个方法,那么每个实现类里都要有个空的方法,显然这么做是不合理的,这时候我们就需要使用。我们在调用时注入多个Service,通过filter找出需要的实现类,这样拓展时只需要新建一个实现类,继承策略方法总接口就可以了。原创 2024-04-15 09:00:00 · 741 阅读 · 0 评论 -
Ruoyi-vue-plus5.0登录流程详解
这里我们可以看到对encrypt-key这个密匙是进行了两次加密,一次Base64一次RSA加密后续后端也会解密两次。我们看到这个类中有多个实现类对应着每个授权类型。根据传入的授权类型获取容器中对应的bean对象来区分调用哪一个实现类中的login方法。这个拦截器会拦截除登录相关接口的所以请求,处理检查是否有token外,还会校验请求。先获取header中的密匙解密两次后解密请求体中的参数。一个客户端可以有多种授权类型,只要满足其中一个即可。这里的配置对应拦截器中的参数。这里两个文件对应两种环境。原创 2024-03-02 15:55:13 · 2619 阅读 · 0 评论 -
Mybatis通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?
接口的全限名,就是映射文件中的 namespace 的值;接口的方法名,就是映射文件中 Mapper 的 Statement 的 id 值;Mapper 接口的工作原理是 JDK 动态代理,Mybatis 运行时会使用 JDK。动态代理为 Mapper 接口生成代理对象 proxy,代理对象会拦截接口方法,转而。Mapper 接口里的方法,是不能重载的,因为是使用 全限名+方法名 的保存和寻。Mapper 接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符。参数,就是传递给 sql 的参数。原创 2024-02-29 16:20:03 · 296 阅读 · 0 评论