- 博客(22)
- 收藏
- 关注
原创 SpringBoot项目删除Bean或者不加载Bean
/ 使用自定义过滤器// 指定自定义过滤器类/*** @Description: 自定义排除过滤器:实现自定义的排除逻辑,返回true表示排除该类,返回false表示包含该类。// 在这里实现自定义的排除逻辑。例如,根据类的名称、包名或其他属性来决定是否排除该类。这里获得是类的全限定名。版本升级请注意 String className = metadataReader . getClassMetadata() . getClassName();
2025-01-12 20:52:14
532
原创 第5章 价值需求分析
利益相关者是积极参与项目、受项目结果影响,或者能够影响项目结果的个人、团队或组织。全局分析阶段的价值需求分析是明确目标系统的利益相关者,而不是对企业做战略分析,虽然二者之间或多或少存在一定的关系。企业的战略规划必然会影响目标系统的开发计划,开发一个目标系统也需要对准企业的战略目标。
2025-01-12 20:23:05
785
原创 第四章 问题空间探索
一旦你了解了问题所在,答案就变得相对简单了。我从中得出结论:我们应该立志去增强人类的自我意识,这样才能更好地去理解问题所在。-一埃隆·马斯克,《埃隆·马斯克的冒险人生》在项目之初,问题空间对我们而言是完全未知的。在项目开发的早期,我们应在宏观层次对问题空间做一次全方位的梳理和分析,这就是领域驱动设计统一过程的全局分析阶段。
2025-01-05 22:01:00
668
原创 第三章 领域驱动设计统一过程
领域驱动设计具有一定的开放性,只要遵循"以领域驱动为核心"的原则,就可以在软件构建过程中使用不限于领域驱动设计提出的方法,以控制软件的复杂度。在不违背核心原则的情况,我们可以按照对它的理解,结合自身在项目中的实践来扩展整套方法论,这意味的我们自己也可以添加新的模式。
2024-12-29 18:15:57
933
原创 第二章 领域驱动设计概括
软件的核心是其为用户解决领域相关的问题的能力。所有其他特征,不管多么重要,都要服务于这个基础的目的。-----Eric Evans,《领域驱动设计》
2024-12-20 16:27:18
960
原创 第一章 软件复杂度剖析
由大量相互作用的部分组成的系统。于整个系统比起来,这些组成部分相对简单,没有中央控制,组成部分之间也没有全局性的通信,并且组成部分的相互作用导致了复杂行为。
2024-12-15 14:54:57
1054
原创 List<E>转Map<String,List<E>> 转 Map<String,E>
将List转Map,但需要注意使用。使用toMap转换,第三个参数是在出现重复key时,将。
2024-06-12 17:07:09
266
原创 业务:第11天
这是因为 i++ 操作实际上包含了三个步骤:读取 i 的值、对其进行加一操作、将结果写回 i。在多线程环境下,多个线程可能同时读取 i 的值,进行加一操作,然后写回 i,导致竞态条件(race condition),最终导致不确定的结果。类它提供了原子性的递增操作,可以确保线程安全。i++在多线程的情况下是线程不安全的,使用java提供的原子类。
2024-02-01 08:02:08
218
原创 业务第10天
首先设计一张预约表,表中主要字段有主键、 预约人姓名、手机号、状态、预约时间、创建时间、修改时间等,由于一个手机号在同一个时间段内只能预约一次,我们也可以在表结构中设置唯一约束(手机号+预约时间),其中预约状态分为待报到,已完成,已取消和过期。根据这张表建立实体类,以及五个接口:新增预约;安装并运行若依平台,然后打开需要导入数据的表,修改表格式和字段信息,在若依管理平台中,选择系统工具中的代码生产,导入需要生成代码的表。重启若依平台和数据库,在菜单管理中修改组件路径和排序,修改vue代码,美化显示效果。
2024-01-30 22:10:08
172
原创 业务:第九天
中州养老的核心业务流程是这样的,首先要参观预约(老人及家属通过小程序或者APP预约,也可以电话预约),然后就可以出示预约信息到院参观,有入住意向之后可以办理入住(办理入住的时候就有一个很长的审批流),之后就给老人提供计划内的护理服务,家属可以绑定入住成功的老人,老人要外出需要请假销假(这也是审批流,但是比较短),最后老人觉得不合适可以办理退住。我在公司中开发一个项目的时候,会先大体查看项目的功能项,大体看看有哪些模块,模块中有哪些包,这些包都是干什么的。之后解决测试中出现的问题,解决完之后进行回归测试。
2024-01-29 08:20:01
416
原创 业务:第八天
使用优惠券功能在我的项目中有以下几个流程:首先,在订单确认页面查询可用优惠方案,主要判断订单是否符合优惠的条件,例如满减门槛或者是否适用优惠券的分类;其次,在订单创建页面核销优惠券、查询优惠券优惠明细、查询优惠规则;最后,当用户取消订单时,还需要退还优惠券;支付后退订单、优惠券则不用退还处理;
2024-01-25 08:06:35
405
原创 业务:第六天
HashMap和ConcurrentHashMap是Java中Map集合,区别点是HashMapHashTableSegmentSegmentCASputkeyNodeCAS。
2024-01-19 21:41:25
355
原创 业务:第五天
在项目中签到功能,是需要计算连续签到天数,如果使用其他类型去计算的话效率较慢,以及对内存的存储而言是不好的,而使用bitmap类型通过0,1就可以表示是否签到,效率好,内存空间的使用更少。比如此时有一个1到6的链表,我要找5这个数字,普通的链表是依次向后找出5,而跳表是在这个基础上又加了一层索引。通过这种方式来减少遍历的数量。bitmap是Redis中的String类型里的一种类型,存储数据是以二进制(bit位)为单位进行存储的。跳表:主要是单链表 + 索引的方式实现,以空间换时间的形式,提高查找速度。
2024-01-18 20:01:36
898
原创 Redis分布式锁--面试题
解析:redisson的分布式锁在redis宕机之后,哨兵会重新选举一个主节点,此时一个服务正在对原主节点操作,原主节宕机后没有同步数据,又来一个服务对新主节点操作,它是可以获取到锁的,是因为数据没有同步过来,这时两个服务同时持有一把锁,就会产生脏数据。可以利用Redis的setnx命令来实现分布式的加锁,但无法保证原子性,是因为要在setnx之后在加上锁的过期时间,这是俩条命令,需要放到一条命令中来保证原子性。使用场景:业务负责,锁的粒度小的时候可以使用锁的重入,避免多个锁之间产生死锁的问题。
2024-01-17 21:42:44
751
原创 Redis面试题
主从第一次同步是全量同步后期数据变化后,则执行增量同步全量同步的流程从节点执行replicaof命令,发送自己的replid和offset给主节点主节点判断从节点的replid与自己的是否一致,如果不一致说明是第一次来,需要做全量同步,主节点返回自己的replid给从节点主节点开始执行bgsave,生成rdb文件主节点发送rdb文件给从节点,再发送的过程中从节点接收rdb文件,清空本地数据,加载rdb文件中的数据。
2024-01-13 21:40:18
745
原创 业务:第二天
在项目中生成课表涉及到的微服务:课表微服务,订单微服务、课程微服务,涉及到的表有:课程表、学生课表、订单表。那么,我就从免费课程生成学生课表的流程来大致说一下。在这个项目中最近学习的课程的展示仅仅是最近的一个课程,在这个而课程中查询学习章节的这么一个功能。查询课表涉及到了微服务:课程微服务、学生课表微服务,查询的表有:学生课表、课程表。我的项目中查询课表功能的业务流程大致是这样的。至此课表已生成完毕。
2024-01-13 21:28:19
466
原创 业务:第一天
首先,在GOGS中创建一个仓库,将写好的代码存入仓库中,本地向仓库拉取或提交代码,在提交时,我们会通常push到指定分支上,项目经理会先检查代码无误后,会从专门的分支上进行push。访问受限资源:用户在登录后,可以使用Token来请求受限资源,服务器会验证Token的有效性,如果通过验证则返回相应的资源。安全退出:用户可以选择安全退出,客户端会销毁Token,服务器也会相应地使Token失效,从而保障用户的安全性。其次,Jenkins 会监听代码仓库的变化,一旦检测到变化,就会从GOGS中拉取最新的代码。
2024-01-12 21:31:33
395
原创 多线程(认识和创建)
什么线程:一个程序内部的一条执行路径。简单的说就是在做事情什么是单线程:程序内部只有一条单独的执行路径。简单的说就是只做一件事情什么是多线程:从软硬件上实现多条执行流程的路径。简单的说就是同时做多件事情线程可以减少队列阻塞带来的影响,提高CPU的利用率。
2024-01-03 08:35:48
897
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人