- 博客(289)
- 收藏
- 关注
原创 规则引擎 - Easy Rules
逻辑很简单创建一个规则, Rules rules = new Rules();需要什么规则 RuleBuilder创建一个事实 Facts facts = new Facts();创建规则引擎 RulesEngine rulesEngine = new DefaultRulesEngine();执行规则 rulesEngine.fire(rules, facts);这个规则 这个事实。
2025-04-21 20:43:36
654
2
原创 域名报不安全链接 -- 解决方案
443是HTTPS证书使用的常见端口,但具体使用的端口可以根据您的实际需求进行自定义配置。请根据实际情况调整相关设置,以确保证书能够正常工作。如果您希望所有的HTTP访问自动跳转到HTTPS页面,可通过rewrite指令重定向到HTTPS。● 已在Web服务器开放443端口(HTTPS通信的标准端口)。○ 确保已经在安全组规则入方向添加TCP 443端口。其他自己购买的长期证书,逻辑一致,替换cr即可。设置HTTP请求自动跳转到HTTPS。
2025-03-25 16:12:27
400
原创 集成框架 - 多数据源配置
由于现在基本都是以springBoot配置,所以我这边就按照springBoot配置多数据源,主要还是设计在分布式场景下,能用到的场景,其实也可以通过两边的服务调用,或者hsf,dubbo,以及grpc,或者springCloud相关openFign 或者说fign其实都可以进行两边软件的传输,也可以通过mq,比如说rabbitMQ这种轻量化mq进行传输,但是如果说一些记录方面的,或者A服务需要更高的权限,进行对B服务应用所对应的数据库,或者本地的副本数据库,做一些处理的时候,就要用到多数据源的情况,其实还
2025-01-22 14:18:09
776
原创 @JsonFormat @DateTimeFormat 注解
pattern = “yyyy-MM-dd HH:mm:ss”:告诉 Spring 框架,期望这个参数的字符串格式是 yyyy-MM-dd HH:mm:ss, Spring 就可以按照这个格式将其解析并赋值给对应的属性。○ pattern = “yyyy-MM-dd HH:mm:ss”:按照 yyyy-MM-dd HH:mm:ss 这种格式转换为字符串。○ pattern = “yyyy-MM-dd HH:mm:ss”:按照 yyyy-MM-dd HH:mm:ss 这种格式转换为字符串。
2025-01-14 15:18:22
1132
原创 java.lang.NoClassDefFoundError: org/springframework/boot/context/annotation/ImportCandidates
结论就是:存在 spring-boot-autoconfigure-2.7.5.jar 等不同版本混用的情况(启动类所在的 Spring Boot 版本是 2.5.10,导致部分配置相关的自动配置类找不到)从项目使用的 Spring Boot 相关依赖版本来看,有个依赖是自动导入的,没有进入底面的配置约束,所以存在 spring-boot-autoconfigure-2.7.5.jar。这个方法我前面写了自动配置原理,是获取自动配置相关的候选配置类,找不到这个类。
2025-01-08 22:49:14
945
原创 JDK8新特性 --instant
java.time.Instant 类是 Java 8 新增的日期时间 API 的一部分,用于表示时间线上的一个瞬时点。它是不可变的、线程安全的,并且设计用来代替 java.util.Date。Instant 可以被用来记录事件发生的时间戳,以及进行时间戳的计算和转换操作。自1970年1月1日0时0分0秒(UTC)开始的秒数。纳秒部分(秒内的纳秒数),以提供更精确的时间。
2024-12-13 10:30:15
921
原创 必修 -- 常用笔试题
给定一个包含多行文本的字符串(每行以换行符\n分隔),要求编写一个Java方法来实现以下功能:统计并返回字符串中所有单词的总数(假设单词由空格分隔,且单词之间可以有多个空格,单词只有英文字符)。统计并返回出现次数最多的单词及其出现次数(如果有多个单词出现次数相同且最多,则返回其中任意一个)。统计并返回字符串中所有不同单词的数量。例子:String text = “Hello world. This is a test.\n Another test, with Hello again.”;
2024-11-15 11:46:19
404
原创 SpringBoot -- 自动化装配源码
这个类是 Spring 容器的默认实现之一,是一个全功能的 Spring Bean 工厂,提供对 Bean 的完整管理,包括 Bean 的创建、定义、解析依赖、配置等功能。SpringFactoriesLoader.loadFactoryNames 方法会读取 META-INF/spring.factories 文件中的配置,获取所有自动配置类的全限定名。有4个接口和一个注解都可以把对应类型放到容器里面,上文从源码来看是约定了一个接口,具体如何注册,看实现方式。
2024-11-14 16:13:21
1545
4
原创 集成框架 -- 自定义二方包 starter
二方包 My-thread-pool-startermy-thread-pool-starter 整体架构测试 MyTestAppApplication测试工程 my-test-app 结构测试项目的 pom.xml。
2024-11-04 20:09:33
506
原创 跳表 -- skipList
而二叉平衡树的实现要求处理更多的情况,特别是在节点插入和删除时需要进行一系列的平衡操作,如旋转,以保持树的平衡性。而跳表通常需要额外的空间来保存指向不同层级的指针,这意味着它可能比二叉平衡树占用更多的内存,二叉平衡树每个节点通常只两个子节点指针,对于AVL树还可能包含高度信息,对于红黑树则包含颜色信息,但总体上比跳表更节省空间。B+树是一种自平衡的树结构,它将数据保持在排序的叶子节点中,所有的值查询操作都会到叶子节点,而内部节点仅存储键值及其子节点的指针。在跳表中,每个元素出现在多个层次的链表中。
2024-10-21 10:25:30
1289
原创 梳理归档文档
客户端发起请求,服务器返回响应,最常见的方法有四种请求方式GET,PUT,POST,DELETE,GET方法常用于请求服务器发送某个资源,POST方法常用于提交表单,或者上传文件,PUT方法常用于更新已存在的资源,DELETE方法用于删除已存在的资源。在命令行中,你可以使用 echo %变量名% 来查看某个环境变量,例如 echo %PATH%,在图形界面中,你可以右键点击“计算机”图标,选择“属性”,然后点击“高级系统设置”,再点击“环境变量”。可以通过查看设备的硬件特性来判断操作系统。
2024-09-19 15:16:13
1002
原创 ubuntu 安装docker 以及 Alibaba Cloud Linux 3.2104 LTS 64位 安装docker
这个命令会删除 Docker 程序及其配置文件。这将删除 Docker 的数据卷、镜像、配置文件等。
2024-09-05 19:18:54
932
原创 必修-场景题
对于高并发的场景,可以采用Kafka/RabbitMQ等消息队列,将请求进行排队处理,避免瞬时高并发冲击数据库,关于如何利用消息队列延时队列处理有对应的文章我集成框架 - RabbitMQ。例如,在优惠券数量减少的过程中,进行版本号比较,确保操作的原子性,前提是一个库一张表。我以设计一个抢优惠券并发场景的解决方案,来举例,那么需要确保系统的高并发处理能力、安全性和可靠性。使用独立的请求ID对每个用户的请求进行去重,防止重复请求,常用的就是id加上ip加上机器放bitmap。
2024-07-25 18:11:20
3141
原创 配置证书443访问 -- 集成框架
由于业务要求需要对当前网络请求服务器不走80端口,进行443 https证书访问。文档有点丑见谅,我还没加样式。
2024-05-24 12:40:15
1167
原创 集成框架-RabbitMQ重试和确认
在中,你可以使用yml格式的配置文件来配置RabbitMQ的重试机制。spring:rabbitmq:port: 5672listener:simple:retry:initial-interval: 5000 # 初始重试间隔时间(毫秒)max-attempts: 3 # 最大重试次数max-interval: 10000 # 最大重试间隔时间(毫秒)multiplier: 2.0 # 重试间隔时间倍数在这个配置中,启用了RabbitMQ 的重试机制,并指定了重试的初始间隔时间。
2024-05-16 22:05:42
1561
原创 mysql: docker 异常 - mbind: Operation not permitted
用数据库处理平台问题今天报错,。mbind 不允许操作,一头雾水这是什么意思。网上找了很多资料大概意思是:这个错误通常表示操作系统或系统管理员已经限制了进程的内存绑定操作。内存绑定是一种将进程的内存映射到特定的物理内存区域的操作,这可以提高性能或者确保一些特定的内存访问策略。但是,在某些环境下,比如虚拟化环境或者受限制的系统中,可能会禁止这种操作。我是用docker进行处理的,也就是docker虚拟化容器技术。所以这个问题需要docker买单。对于MySQL。
2024-05-09 22:02:44
2992
原创 集成框架 -- OSS
接入oss必须有这两个文档基础使用STS临时访问凭证访问OSS_对象存储(OSS)-阿里云帮助中心前端上传跨域后端代码已经提供,前端就比较简单了,拿到钥匙直接upload就可以了。一般脚手架都有,凭借url即可前端文档:sts前端上传代码。
2024-04-29 16:06:13
1239
原创 chroot -- 限制其他用户liunx空间且监控生成子账户输出命令日志
前提ecs 服务器,centos系统,乌班图系统需要root榕湖ssh 限制了 xushouchun账户在home家目录给定了对应的命令提供了对应的配置关于越狱问题,除非待讨论 除非对方有计算机基础,不然很难越狱。
2024-04-17 18:08:30
500
原创 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not al
AllowPublicKeyRetrieval=True 参数以允许客户端从服务器获取公钥。
2024-04-08 22:18:23
442
原创 vit -- 常用配置
构建:定义了构建输出和优化选项,包括输出目录、压缩器、source map 和 Rollup 打包器的配置。静态文件服务:指定了一个目录,该目录下的文件会被 Vite 资源服务器作为静态文件提供。别名:定义了一些便利的路径别名,可以在 JavaScript 和 CSS 中使用。开发服务器:配置了本地开发服务器,包括自动打开浏览器、跨域和代理。全局常量:定义了一些在全局代码中可以使用的常量,例如版本号。插件:使用了 Vue 官方的插件来支持单文件组件。基础路径:配置了用于加载资源的基础路径。
2024-03-27 10:54:56
384
原创 Spring - 使用webSockt
在实际应用中,前端可能需要一些逻辑来控制重连、消息格式处理(例如JSON的编码和解码)、心跳检测以维持连接不被断开等。但是一般会用组件,如React、Vue,可以将WebSocket逻辑包装到一个服务或hook中,并在对应的的生命周期中初始化和销毁WebSocket连接。另外,对于一些复杂的场景,可能会使用一些封装了WebSocket和提供了更丰富功能的库(如socket.io)为了安全性,服务器端还需要实现适当的身份验证和授权机制,并在前端采取措施以保护用户数据。
2024-03-21 16:23:33
603
原创 java基础 -- 事件监听器
在示例中,我们创建了一个自定义的事件类MyEvent,一个实现MyEventListener接口的事件监听器类MyEventListenerImpl,以及一个触发器类EventTrigger来触发事件和管理事件监听器。通过运行Main类,可以看到事件监听器接收到事件并进行相应的处理。您可以根据需要在事件类和事件监听器类中添加更多的数据和方法。要实现一个事件监听器,您可以使用Java中的事件模型和接口。
2024-02-20 12:10:52
665
原创 Kind创建k8s - JAVA操作控制
kind 是 Kubernetes in Docker 的简写,是一个使用 Docker 容器作为 Nodes,在本地创建和运行 Kubernetes 群集的工具。适用于在本机创建 Kubernetes 群集环境进行开发和测试。kind 使用 kubeadm 创建和启动群集节点。
2023-12-25 15:21:33
2119
1
原创 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler d
检查您的Java版本:确保您正在使用包含 “javax/xml/bind/DatatypeConverter” 类的JDK版本。错误信息提示缺少 “javax/xml/bind/DatatypeConverter” 类,这是在Java类路径中缺失的一个类。添加JAXB库:如果您使用的JDK版本不包含 “javax/xml/bind/DatatypeConverter” 类,您可以手动将JAXB库添加到项目的依赖项中。清理并重新构建项目:在添加依赖项后,清理并重新构建项目,以确保JAXB库正确包含。
2023-12-01 18:23:30
1239
原创 IO流 -- 调研
对于io流其实一直在使用,但是其中原理不是很熟悉,至于能干什么,概念是比较熟悉的,但是深入了解还是欠缺,于是我开始整理这部门整体话知识,进行了一次调研;
2023-10-13 11:12:13
234
原创 HashMap -- 调研
在Java中,保存数据有两种比较简单的数据结构:数组和链表。数组的特点是:寻址容易,插入和删除 困难;链表的特点是:寻址困难,但插入和删除容易;所以我们将数组和链表结合在一起,发挥两者各 自的优势,使用一种叫做拉链法的方式可以解决哈希冲突。
2023-10-11 17:29:32
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅