- 博客(11)
- 收藏
- 关注
原创 你们项目中用到了哪些设计模式?
在电商项目中,我们经常需要访问共享的配置信息,如数据库连接池、支付网关设置或应用程序配置。这些配置数据在整个应用程序生命周期内都需要保持一致性,因此我们需要一个单一的配置管理器来处理这些数据。电商平台可能有大量的商品,其中一些属性是共享的,如品牌、颜色、尺寸等。使用共享模式,将这些共享属性提取出来,并在多个商品对象之间共享。减少了内存占用,因为相同属性的商品共享相同的对象。强调单例模式在项目中的优势和好处,如确保配置数据的一致性、节省内存和资源、避免多次创建对象。
2023-10-11 15:21:05
194
原创 git相关内容
git fetch只是将远程仓库中的内容更新到本地,而不会自动合并到本地分支中;而git pull = git fetch + git merge,git fetch 与 git pull 和 git merge的关系和区别。即先通过git fetch获取远程更新,再将这些更新自动合并到本地分支中。git commit -m 'xxxxx' 提交本地。git pull 更新代码。git push 提交。git merge 合并。git log 查看提交历史。
2023-09-26 09:01:09
40
1
原创 平常测试的流程和部署上线的流程
镜像 ---> 将jar利用Dockerfile打包成镜像过程--->发布到本地镜像仓库中--->docker启动或者K8S拉取镜像并启动。:首先需要确保服务器上已经安装了Java运行环境(JRE或JDK)。:将Java项目通过构建工具(如Maven或Gradle)进行打包,生成可部署的war或jar包。1.测试流程: 需求分析、测试计划、测试设计、测试执行、测试评估和测试报告。jar包--> springboot项目。:在服务器上安装Java运行环境(JRE或JDK)。:将打包好的文件上传到服务器上。
2023-09-26 08:59:55
109
1
原创 代码的规范
1.命名规范:类名、接口名、方法名、变量名等应该使用驼峰命名法,首字母小写,单词之间用下划线分隔。包名应该全部采用小写方式,以中划线分隔。编程规范:代码应该遵循Kent Beck的简单设计四原则,即通过所有测试、尽可能消除重复、尽可能清晰表达、更少代码元素。异常处理规范:应该对异常进行分类处理,并且应该在代码中添加注释来解释异常处理的原因。日志规范:应该使用统一的日志框架,并且应该在代码中添加注释来解释日志记录的目的。
2023-09-26 08:58:10
43
1
原创 Mybatis和Mybatis plus
总的来说,MyBatis Plus是对MyBatis的功能扩展和增强,提供了更多便捷的操作方法和开发工具,适用于快速开发和简化代码的场景。而MyBatis Plus是在MyBatis的基础上进行了功能扩展,提供了更多便捷的CRUD(增删改查)操作方法,例如自动生成SQL、分页查询、逻辑删除等。而MyBatis Plus是在MyBatis的基础上发展起来的,虽然也有一定的用户社区和文档支持,但相对于MyBatis来说规模较小。
2023-09-23 11:14:13
189
1
原创 Mysql相关数据库
它采用了缓冲池、日志系统、索引系统、锁管理、并发控制等关键技术,为MySQL提供了可靠的存储引擎,适用于高并发的OLTP场景。每个事务都有一个唯一的事务ID,读操作可以读取已提交的数据快照,写操作会创建新的数据版本,并对其他事务提供可见性控制。1.InnoDB是MySQL数据库中的一种存储引擎,它采用了多版本并发控制(MVCC)和行级锁定来实现高并发性能和事务支持。索引可以加快数据的查找和排序操作。3、行级锁定:InnoDB使用行级锁定来实现并发控制,允许多个事务同时读取和写入不同的行,提高了并发性能。
2023-09-23 11:11:12
31
1
原创 SE最基础的东西你真的都知道吗?
(3)插入和删除操作:对于ArrayList来说,在尾部进行插入和删除操作比较高效,因为它可以直接通过索引访问元素。(4)随机访问:由于ArrayList使用数组来存储元素,可以根据索引快速访问元素,所以随机访问的性能较好。综上所述,当需要频繁进行插入和删除操作时,且对随机访问的性能要求不高时,可以选择LinkedList。而Map是键值对的集合,每个元素都包含一个键和对应的值,键是唯一的,不允许重复。总结来说,List适用于按照顺序存储和访问元素的场景,而Map适用于根据键值对进行存储和访问的场景。
2023-09-23 11:08:19
32
1
原创 hashmap相关
而ConcurrentHashMap是线程安全的,通过使用锁分段技术(Segment)来实现并发访问控制,不同的段可以被不同的线程同时访问,提高了并发性能。:HashMap的迭代器是快速失败的,即在迭代过程中,如果其他线程对HashMap进行修改,会抛出ConcurrentModificationException异常。当向HashMap中添加元素时,首先会计算元素的哈希码,并根据哈希码找到对应的存储位置,然后将元素存储在该位置上。同时,在扩容机制上也进行了改进,减少了哈希碰撞的概率。
2023-09-23 11:03:03
45
1
原创 单点的登录相关
过滤器判断是否拦截 ->不拦截放行 -> 拦截获取token(同步操作从cookie中获取,异步操作从request头中获取) -> 验证token -> 有问题重定向login页面 -> 判断ip是否篡改 -> 验证通过就放行。(2)对于有较高安全要求的系统可以使用jwt,其中有效载荷里面存储我们的加密信息,我们项目中是将用户对应的P地址保存到载荷中的。3.为了校验token要尝试获取token值,根据前端将token保存位置的不同,可以从请求头中获取也可以从cookie中获取。
2023-09-22 16:36:05
37
原创 多线程的异步编排
一句话理解ThreadLocal,threadlocl是作为当前线程中属性ThreadLocalMap集合中的某一个Entry的key值Entry(threadlocl,value),虽然不同的线程之间threadlocal这个key值是一样,但是不同的线程所拥有的ThreadLocalMap是独一无二的,也就是不同的线程间同一个ThreadLocal(key)对应存储的值(value)不一样,从而到达了线程间变量隔离的目的,但是在同一个线程中这个value变量地址是一样的。
2023-09-22 16:19:49
174
原创 redis相关
在Redis集群中,数据会被分布在不同的节点上,而哈希槽则是用来划分数据所在节点的逻辑单位。但是要注意的是,在使用 Redis 事务时,事务中的多个命令并不保证原子性,只有在执行 EXEC 命令后才会被作为一个原子操作来执行。🌟Redis 的操作是原子的,Redis 中的每个命令都是原子执行的,要么全部执行成功,要么全部失败,中间不会被其他命令所影响。Redis会根据数据的键值对应的哈希值,将其映射到一个哈希槽中,并根据哈希槽的分布情况,将数据存储到相应的节点上。接),并在有事件发生时进行处理。
2023-09-05 16:07:06
62
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人