自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悟已往之不谏,知来者之可追

内存虽快,但不持久

  • 博客(1160)
  • 资源 (67)
  • 问答 (12)
  • 收藏
  • 关注

原创 @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思

JetCache 是一款基于注解的缓存框架,提供了丰富的缓存功能和灵活的配置选项,可用于增强应用程序的性能和可扩展性。使用 @CacheInvalidate 注解,可以方便地在方法执行后无效化指定的缓存数据,确保下次访问时能够获取最新的数据。它的作用是在指定的缓存中,根据给定的条件,使缓存中的数据无效化(即删除或失效)。属性的组合作为缓存的键(key),将缓存中匹配的数据进行无效化。属性发生变化时,通过该代码可以立即使缓存中与这些变化相关的数据失效,以确保下次访问时能够重新从数据源获取最新的数据。

2023-11-13 10:28:53 867

原创 mongo实际业务场景实战

查询时将员工的具体属性(如部门、岗位、职级、专业)和“ALL”作为查询条件,从而找到适用的业务值。在这个设计中,每个字段都存储了一个数组,包含了该业务值适用的所有层级、岗位、职级和专业。现在使用mongo作为存储介质,请分别设计存储和查询的方法,在保证高效的情况下,能够快速的将员工找到对应的业务值。操作符,可以同时匹配员工的具体属性和“ALL”,“ALL”相当于是一个通配符,表示适用于所有的情况。此时,有一个员工,是来自部门是D001002003,岗位是岗位C,职级是M-3,专业是专业C。

2023-11-10 13:45:13 134

原创 一句话介绍spring的依赖倒置

依赖注入是指Spring容器将依赖关系从代码中移除,通过配置文件或注解来进行管理,使得对象之间的依赖关系更加清晰和易于维护。依赖倒置是指,高层次的模块不应该依赖于底层次的模块,二者都应该依赖于抽象。Spring是一个开源的Java应用程序框架,它提供了一系列的工具和组件,用于开发企业级Java应用程序。总之,Spring的依赖倒置是一种非常有用的设计模式,它将应用程序的不同部分解耦,提高了代码的可维护性和可。Spring容器将对象的创建和管理交给了框架,应用程序只需要关注对象的使用,降低了代码的复杂度。

2023-11-07 15:49:06 141

原创 DDD领域模式的模块层级及其依赖关系

DDD领域模型设计是一种常用的软件设计模式,它强调将业务逻辑和数据模型放在最核心的位置,以便更好地满足业务需求。在DDD领域模型设计中,应用程序被分为四个层次:用户界面层、应用服务层、领域模型层和基础设施层。

2023-11-07 15:32:26 274

原创 如何写出匹配Java方法注释的正则表达式

如何写出匹配Java方法注释的正则表达式

2023-11-06 17:20:03 398

原创 在idea命令行,or linux 终端执行命令,快速获取通过脚本上证指数、创业板实时行情

编写shell脚本如下,并保存命名为stock。

2023-11-06 11:43:20 159

原创 在Spring中,教你一招优雅的获取国际化语言配置的方法

在 Spring 中,可以通过 HttpServletRequest 对象获取 HTTP 头部信息,包括 Accept-Language 头部,该头部用于指示用户所选的语言。在Spring中,可以将国际化语言放到HTTP请求头部,以便后端程序能够获取并解析该语言。一种常见的方式是使用Accept-Language标头字段来设置语言。在上面的例子中,通过方法参数注入 HttpServletRequest 对象,可以在 sayHello 方法中获取 HTTP 头部信息,并解析出用户所选的语言配置信息。

2023-11-03 15:41:39 355

原创 @JsonCreator 和 @JsonValue使用说明

JsonCreator 和 @JsonValue 是 Jackson 中非常有用的注解,它们可以帮助我们自定义 JSON 对象和 Java 对象之间的转换。使用 @JsonCreator 注解,我们可以告诉 Jackson 如何将 JSON 对象转换为 Java 对象;使用 @JsonValue 注解,我们可以告诉 Jackson 如何将 Java 对象转换为 JSON 对象。这两个注解可以让我们更加灵活地处理序列化和反序列化过程,使我们的代码更加简洁和易于维护。

2023-11-01 15:15:55 1100

原创 MappingMongoConverter原生mongo 枚举类ENUM映射使用的是name

这些异常通常是由于代码中的枚举常量名称拼写错误或不存在导致的。要解决这些异常,您需要检查代码中涉及的枚举类和枚举常量名称是否正确。确保枚举常量名称与代码中定义的名称完全匹配。如果枚举常量名称正确,则需要检查代码中是否正确地引用了枚举常量。

2023-10-30 17:02:35 258

原创 Java 脚本实现mongo中某一个库中的表数据,导出到另外一个mongo数据库中

在上面的代码中,我们首先创建了两个 MongoDB 客户端,分别连接到源数据库和目标数据库。然后,我们获取了源数据库的数据表和目标数据库的数据表,并使用 find() 方法遍历源数据库中的每一条数据,并将其插入到目标数据库中。在上面的代码中,如果目标数据库中的 dest_collection 表还不存在,MongoDB 会自动创建该表。需要注意的是,在实际使用中,我们需要根据实际情况修改代码中的数据库连接配置、数据库名和数据表名。另外,如果要导出的数据表比较大,需要注意的是,如果使用异步操作,需要使用。

2023-10-26 15:29:37 216

原创 一句话解释什么是出口IP

如果你使用的是 NAT(网络地址转换)技术,则在 NAT 设备内部会进行地址转换,使得多个设备可以共享同一个公共 IP 地址,因此出口 IP 地址可能会与本地网络内部的 IP 地址不同。需要注意的是,如果使用的是 NAT(网络地址转换)技术,则在 NAT 设备内部会进行地址转换,使得多个设备可以共享同一个公共 IP 地址,从而隐藏了内部设备的真实 IP 地址。当一台设备(如电脑、手机、路由器等)连接到因特网时,它会被分配一个全球唯一的 IP 地址,这个 IP 地址称为该设备的出口 IP 地址。

2023-10-25 15:08:59 6147

原创 org.springframework.dao.InvalidDataAccessApiUsageException: Cannot autogenerate id of type java.lang

确认实体对象中 @Id 注解的字段是否正确生成了 Long 类型的值,并且不为 null。如果需要使用 MongoDB 自动生成 _id,可以将注解的字段类型改为 String 类型。需要注意的是,使用 insert 方法时,如果 _id 的值已经存在于集合中,插入操作将会失败。使用 save 方法时,如果 _id 的值已经存在于集合中,将会执行更新操作。中时,@Id 注解的字段的值为 null,导致 MongoDB 无法自动生成 Long 类型的 _id。注解,以及注解的字段类型是否为 Long 类型。

2023-10-22 16:08:06 737

原创 @JsonCreator(mode = JsonCreator.Mode.DELEGATING) @JsonValue解释

JsonCreator 注解是 Jackson 序列化库提供的一个用于反序列化的注解,用于标记一个构造方法、静态工厂方法或者实例方法作为反序列化时使用的工厂方法。mode 属性指定了使用的模式,包括 DEFAULT(使用默认的构造函数或无参静态工厂方法)、DELEGATING(使用有参构造函数或有参静态工厂方法)、PROPERTIES(使用带有 @JsonProperty 注解的属性)等。在这个例子中,@JsonValue 注解标记了一个方法 getId(),并指定了该方法在序列化时使用的方法。

2023-10-19 20:43:44 604

原创 Map<String, Object> 和 com.fasterxml.jackson.databind.node.ObjectNode区别

使用Map时,您可以通过键来访问对应的值,并且可以使用各种方法来添加、删除、修改和遍历键值对。类的子类,是Jackson库中的一个重要组成部分。使用ObjectNode时,您可以像使用Map一样访问对象的属性,并且可以使用各种方法来添加、删除、修改和遍历属性。Map可以存储任何类型的值,而ObjectNode只能存储JSON中的基本数据类型(如字符串、数字、布尔值、null)以及JSON对象和数组。

2023-10-18 20:13:46 550

原创 Method threw ‘java.time.format.DateTimeParseException‘ exception.

这个错误通常是由于时间字符串与解析格式不匹配导致的。在这个例子中,可以检查一下 DATETIME_FORMATTER_PATTERN_T 这个格式化器的格式是否正确,是否与输入字符串的格式一致。如果格式不一致,需要更新格式化器的格式来匹配输入字符串的格式。另外,如果使用的是 .NET 等其他平台生成的时间字符串,需要注意它们的时间格式可能与 Java 的时间格式略有不同,需要进行转换或适配。,以匹配字符串中的小数点后面的 7 个数字。,第 19 个字符是最后的 ‘0’。,需要将时间格式化器的格式更新为。

2023-08-31 10:46:36 409

原创 The calling method‘s class, org.redisson.spring.data.connection.RedissonConnection

这个错误提示显示在 org.redisson.spring.data.connection.RedissonConnection 类的静态初始化块中调用了一个不存在的方法 org.redisson.client.protocol.RedisStrictCommand.(Ljava/lang/String;确认您的项目中使用的 Redisson 版本是否正确,并且与您的其他依赖项兼容。尝试升级 Redisson 版本到最新版本,或者将 Redisson 版本降级到与其他依赖项兼容的版本。

2023-08-18 16:57:13 270

原创 关于mysql 的冷知识

在MySQL中,最大的行宽为65,535字节,请注意,这里是行宽,而不是列宽。如果我们将其中一个列定义为最大宽度为65,535的VARCHAR类型,那么其他的列便没有存放空间了。根据数据库中所定义VARCHAR列的数量,我们需要对每一列的宽度进行限制。在这种情况下,我们可能需要将某些列定义为TEXT类型,因为TEXT列和BLOB列存储在不同的块中。因此,对于不同的数据库,我们需要找到适当的限制列宽的方法,以避免在领域模型中对字符串长度进行验证。

2023-07-21 11:58:19 193

原创 解决spring security No AuthenticationProvider found for com.问题

No AuthenticationProvider found for com.这个错误通常表示在 Spring Security 配置中缺少对 ThirdAuthAuthentication 类型的身份验证提供程序的配置。

2023-07-18 12:02:36 684

原创 redisTemplate.scan 使用注意

这段代码中,为什么redis中只有一个key,但是却返回三个相同的结果。在Redis中,一个键可以有多个版本(version),也就是说,同一个键可以被多次修改,每次修改都会产生一个新的版本。这些版本之间是按照时间顺序排序的,即最新的版本总是排在前面。当使用SCAN命令遍历某个模式匹配的所有键时,如果某个键有多个版本,那么它会被多次返回,每次返回的版本都不同。这就是为什么你在Redis中只有一个键,但是在Java代码中却返回了多个相同的键的原因。

2023-07-04 14:46:58 444

原创 onceperrequestfilter 和 webmvcconfigurer 区别

在使用Spring框架进行Web开发的时候,我们经常会遇到需要对每个请求做一些统一的处理的情况。例如,我们可能需要在每个请求到达Controller之前进行身份验证,或者在每个请求结束后记录请求的日志信息。这时候,我们可以使用两种不同的方式来实现这些功能:onceperrequestfilter 和 webmvcconfigurer。onceperrequestfilter 是一个过滤器,它可以对每个请求进行拦截,并在请求到达Controller之前或之后执行一些操作。

2023-05-27 19:28:44 1136

原创 warning: fetch updated the current branch head. fast-forwarding your working tree from commit

这段提示信息表明你在执行 git fetch 命令时,由于远程分支的更新,当前分支的 HEAD 已经被更新了。因此,Git 会尝试将你的工作树(working tree)快进(fast-forward)到最新的提交(commit)上。这通常是因为你在执行 git fetch 命令时,获取了远程分支的最新提交,而这个提交已经超过了当前分支 HEAD 所指向的提交。这意味着 Git 会尝试使用最新的提交来更新你的工作目录(working directory),以便让你的工作目录与最新的提交一致。

2023-05-23 17:47:10 556

原创 领域驱动设计(Domain Driven Design)之建立领域模型

用领域模型表达领域概念建立模型使用通用语言验证模型识别构造块类型设计聚合如何使用领域模型

2023-05-07 16:30:40 561

原创 曹操出行一面经历

限流sentinel 工具实现原理如何设计一个业务领域系统流程引擎了解过吗?有哪些开源的流程引擎?

2023-05-04 20:46:25 888

原创 网易三面:数据库查询树形结构层面如何找出一个节点的所有子孙节点和祖先节点?

一、邻接表:依赖父节点查询一个节点的所有后代(求子树)怎么查呢?添加一条记录修改一个节点位置或一个子树的位置删除子树删除中间节点,并提升子节点二、路径枚举路径枚举的优点查询某个节点的全部祖先查询某个节点的全部后代路径枚举的缺点三、嵌套集嵌套集的优点嵌套集缺点四、闭包表优点1、查询所有后代节点(查子树)2、查询所有祖先(查祖先树):3、插入新节点4、删除叶子节点5、删除子树总结

2023-04-26 16:26:59 845

原创 网易二面经历

mongo 索引底层数据结构mysql 双主架构如何同步mysql binlog limit 1顺序不一致,如何保证同步rocketmq reBalance过程是怎么样的,比如新加一个消费线程kafka有没有用过?了解其特性,原理吗?try catch 可以catch住error吗?可以catch住throwable吗?子类1:Error(错误)子类2:Exception(异常)运行时异常:RuntimeException类及其子类异常非运行时异常 (受检异常):是RuntimeExcep

2023-04-25 20:13:03 614

原创 面试官:布隆过滤器运行机制了解吗?有什么优缺点?

1 缓存穿透2 原理解析误判率3 Guava实现3 Redisson实现Redisson 布隆过滤器如何保存元素呢 ?4 实战要点1、缓存穿透场景2、元素删除场景计数布隆过滤器(Counting Bloom Filter)定时重新构建布隆过滤器5 总结

2023-04-20 17:05:24 496

原创 面试官:你知道JVM的卡表吗?

跨代引用跨代引用假说卡表(Card Table)卡表元素如何维护——写屏障

2023-04-20 10:43:56 416

原创 面试官:谈谈你对领域模型设计(DDD)的理解和心得

一、业务开发的职责业务在实际开展中遇到的问题软件复杂度二、DDD的本质是什么1、领域复杂度2、技术实现的复杂性三、复杂度处理-领域模型描述问题域的准确性合理性证明什么是问题域如何实现问题域的分析1 四色原型法2 用例分析法问题域的拆分四、复杂度处理-进一步降低问题域的复杂度-限界上下文限界上下文的诞生背景限界上下文的本质上下文映射五、复杂度处理 - 分层不合理传统的三层架构六边形架构洋葱架构DDD 架构CQRS我们团队里面的架构实践六、复杂度 - 软件变成一个

2023-04-17 21:18:26 1076

原创 面试官:如何设计一个支付系统?

支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下各个系统的核心组成和交互。

2023-04-12 22:00:54 507

原创 面试官:如何设计分布式日志系统?

什么是日志日志的价值分布式架构的日志运维4.1 为什么要有运维工具4.2 运维工具建设APM和可观测性5.1 Metrics和Prometheus5.2 Logging和ELK5.3 Tracing、OpenTracing和Apache SkyWalking5.4 Metrics,Logging和 Tracing 结合文库在日志运维上的实践6.1 汇聚监控6.2 批量查询6.3 链路跟踪日志的坏味道日志 good case

2023-04-12 21:28:02 1064

原创 MyBatis 批量插入的正确姿势

在我们的项目中,会不停地使用批量插入这个方法,而因为MyBatis对于含有的语句,无法采用缓存,那么在每次调用方法时,都会重新解析sql语句。所以,如果非要使用 foreach 的方式来进行批量插入的话,可以考虑减少一条 insert 语句中 values 的个数,最好能达到上面曲线的最底部的值,使速度最快。乍看上去这个foreach没有问题,但是经过项目实践发现,当表的列数较多(20+),以及一次性插入的行数较多(5000+)时,整个插入的耗时十分漫长,达到了14分钟,这是不能忍的。

2023-04-12 21:09:39 508

原创 面试官:你知道SPI吗?Java、Spring、Dubbo三者SPI机制的原理和区别了解吗?

什么是SPIJava SPI机制--ServiceLoader举例实现原理优缺点使用场景Spring SPI机制--SpringFactoriesLoader举例核心原理使用场景1、自动装配2、PropertySourceLoader的加载与Java SPI机制对比Dubbo SPI机制--ExtensionLoader举例dubbo核心机制1、自适应机制2、IOC和AOP2.1、依赖注入2.2、接口回调2.3、自动包装3、自动激活总结

2023-04-10 11:12:23 436

原创 高并发下如何保证接口幂等

1. insert前先select2. 加悲观锁3. 加乐观锁4. 加唯一索引5. 建防重表6. 根据状态机7. 加分布式锁8. 获取token

2023-04-08 12:17:25 664

原创 如何设计一个秒杀架构设计?

1. 秒杀业务的特点2. 总体思路2.1 削峰限流安全保护页面优化,动静分离异步处理热点分离2.2 Nginx的设计细节2.3 页面优化细节降低交互的压力安全控制2.4 Redis集群的应用分布式悲观锁(参考redis悲观锁的代码)异步处理订单2.5 消息队列限流2.6 数据库设计2.7 答题验证码的设计3. 注意事项

2023-04-08 12:16:35 406

原创 几种常见的微服务网关介绍

API网关基础什么是API网关网关的主要功能API网关选型常用API网关NginxZuulSpring Cloud GetWayKongTraefikAPI网关对比

2023-04-08 12:00:02 691

原创 Sentinel滑动时间窗限流算法原理及源码解析(下)

流控快速失败。

2023-04-07 09:23:02 740

原创 Sentinel滑动时间窗限流算法原理及源码解析(中)

WindowWrap样本窗口实例 范型T为MetricBucketwindowLengthInMs 样本窗口长度windowStart 样本窗口的起始时间戳value 当前样本窗口的统计数据 其类型为MetricBucket。

2023-04-07 09:22:37 884

原创 Sentinel滑动时间窗限流算法原理及源码解析(上)

时间窗限流算法滑动时间窗口滑动时间窗口算法改进滑动时间窗口源码解析

2023-04-07 09:22:16 415

原创 MySQL Innodb底层是如何存储数据的

多个数据页之间通过页号构成了双向链表。而每一个数据页的行数据之间,又通过下一条记录的位置构成了单项链表。整体架构图如下:通常情况下,单个数据页默认的大小是16kb。当然,我们也可以通过参数:innodb_page_size,来重新设置大小。不过,一般情况下,用它的默认值就够了。

2023-04-07 09:18:48 843

原创 订单超时自动取消3种方案

1.定时任务2.被动取消3.延时消息

2023-04-06 11:01:57 1914 1

Oracle_10g数据库基础教程[习题解答][1].doc

Oracle_10g数据库基础教程[习题解答][1].doc

2021-02-15

簿客平台 Bookor.pptx

创业薄客平台

2021-02-15

Java vm.pptx

Java vm.pptx

2021-02-15

二分查找法.pptx

二分查找法.pptx

2021-02-15

360前端星-公开课.pdf

360前端星

2021-02-15

交通信息检索技术—关于信号降噪的综述.docx

交通信息检索技术—关于信号降噪的综述

2021-02-15

交通信息检测-Matlab实验1-信号降噪.pdf

交通信息检测-Matlab实验1-信号降噪.pdf

2021-02-15

交通信号检测技术-实验3-图像复原.pdf

交通信号检测技术-实验3-图像复原.pdf

2021-02-15

交通信号检测技术仿真实验2-图像增强.pdf

交通信号检测技术仿真实验2-图像增强.pdf

2021-02-15

计算机组成原理(四版)本科生试题库整理附答案.doc

计算机组成原理(四版)本科生试题库整理附答案.doc

2021-02-14

计算机控制技术—Matlabe仿真实验5.pdf

计算机控制技术—Matlabe仿真实验5.pdf

2021-02-14

第7章控制系统的计算机辅助分析.ppt

第7章控制系统的计算机辅助分析.ppt

2021-02-14

第4章连续系统按环节离散化的数字仿真.ppt

第4章连续系统按环节离散化的数字仿真.ppt

2021-02-14

第2章控制系统的数学模型及其转换.ppt

第2章控制系统的数学模型及其转换.ppt

2021-02-14

第1章仿真软件-MATLAB.ppt

第1章仿真软件-MATLAB.ppt

2021-02-14

HC110117000 访问控制列表.ppt

HC110117000 访问控制列表.ppt

2021-02-14

HC110116003 网络地址转换.ppt

HC110116003 网络地址转换.ppt

2021-02-14

生产者消费者问题.ppt

生产者与消费者问题是经典进程同步问题的典型代表之一。该课程设计通过了解进程间的同步互斥关系,从而理解Java多线程通信机制;通过对经典进程同步问题的剖析,初步掌握运用Java多线程解决进程同步问题的方法。

2021-02-14

多生产者多消费者软件课设报告.doc

生产者与消费者问题是经典进程同步问题的典型代表之一。该课程设计通过了解进程间的同步互斥关系,从而理解Java多线程通信机制;通过对经典进程同步问题的剖析,初步掌握运用Java多线程解决进程同步问题的方法。

2021-02-14

Scheduling policies in hadoop.pdf

hadoop的调度

2021-02-14

基于ARM和GPRS的无线图像传输系统.doc

基于ARM和GPRS的无线图像传输系统.doc

2021-02-14

第16章基于Oracle数据库的应用开发.ppt

第16章基于Oracle数据库的应用开发.ppt

2021-02-14

第15章 PLSQL程序设计.ppt

第15章 PLSQL程序设计.ppt

2021-02-14

第14章 PLSQL语言基础.ppt

第14章 PLSQL语言基础.ppt

2021-02-14

第13章SQL语言基础.ppt

第13章SQL语言基础.ppt

2021-02-14

第12章闪回技术.ppt

第12章闪回技术.ppt

2021-02-14

第11章 数据库备份与恢复.ppt

第11章 数据库备份与恢复.ppt

2021-02-14

第10章安全管理.ppt

第10章安全管理.ppt

2021-02-14

第9章模式对象.ppt

第9章模式对象.ppt

2021-02-14

第8章数据库的启动与关闭.ppt

第8章数据库的启动与关闭.ppt

2021-02-14

第7章数据库实例.ppt

第7章数据库实例.ppt

2021-02-14

第6章逻辑存储结构.ppt

第6章逻辑存储结构.ppt

2021-02-14

第5章物理存储结构.ppt

第5章物理存储结构.ppt

2021-02-14

第4章OEM与SQL Plus.ppt

第4章OEM与SQL Plus.ppt

2021-02-14

第3章创建数据库.ppt

第3章创建数据库.ppt

2021-02-14

第2章数据库服务器的安装与卸载.ppt

第2章数据库服务器的安装与卸载.ppt

2021-02-14

第1章oracle数据库概述.ppt

第1章oracle数据库概述.ppt

2021-02-14

LINUX教材.pdf

LINUX教材.pdf

2021-02-14

LINUX教材.doc

LINUX教材.doc

2021-02-14

Linux FAQ.ppt

Linux FAQ.ppt

2021-02-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除