- 博客(189)
- 资源 (13)
- 收藏
- 关注
原创 《TypeScript基础》:下
我们大多是在混入(mixins)或其它不适合典型面向对象模型的地方看到交叉类型的使用。) 下面是如何创建混入的一个简单例子:联合类型与交叉类型很有关联,但是使用上却完全不同。偶尔你会遇到这种情况,一个代码库希望传入`number`或`string`类型的参数。例如下面的函数:`padLeft`存在一个问题,`padding`参数的类型指定成了`any`。这就是说我们可以传入一个既不是`number`也不是`string`类型的参数,但是TypeScript却不报错。
2024-09-03 16:36:57 1254
原创 《TypeScript基础》:中
TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用。和JavaScript一样,TypeScript函数可以创建有名字的函数和匿名函数。至于为什么可以这样做以及其中的利弊超出了本文的范围,但是深刻理解这个机制对学习JavaScript和TypeScript会很有帮助。让我们为上面那个函数添加类型:我们可以给每个参数添加类型之后再为函数本身添加返回值类型。当写出完整函数类型的时候,这两部分都是需要的。我们以参数列表的形式写出参数类型,为每个参数指定一个名字和类型。
2024-09-03 16:35:42 1202
原创 《TypeScript基础》:上
TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。像其他语言一样,我们使用`string`表示文本数据类型。和JavaScript一样,可以使用双引号(`”`)或单引号(`‘`)表示字符串。你还可以使用模板字符串,它可以定义多行文本和内嵌表达式。这与下面定义`sentence`方式的效果相同:TypeScript像JavaScript一样可以操作数组元素。有两种方式可以定义数组;
2024-09-03 16:33:28 839
原创 《通义千问AI落地—下》:WebSocket详解
《通义千问AI落地——下篇》如约而至。Websocket在这一类引用中,起到前后端通信的作用。因此,本文将介绍websocket在这类应用场景下的配置、使用、注意事项以及`ws连接升级为wss连接`等
2024-08-23 13:17:17 1067
原创 《通义千问AI落地—中》:前端实现
上文中,我们介绍了`通义千问AI落地`的后端接口。那么,接下来我们将继续介绍前端如何调用接口以及最后的效果;首先看效果:上述就是落地到本微博客以后的页面效果,由于是基于落在现有项目之上,因此什么登录注册等基本功能都省去了,言归正传,下面我们将正式介绍通义千问AI落地的前端实现。
2024-08-20 11:35:22 1561
原创 《通义千问AI落地—上》:后端接口
`通义`,由通义千问更名而来,是阿里云推出的语言模型 ,于2023年9月13日正式向公众开放。属于(AI Generated Content,`AIGC`)领域, 是一个MaaS(模型即服务)的底座。为多模态大模型(Multimodal Models)。通义意为`“通情,达义”`,具备全副AI能力,致力于成为人们的工作、学习、生活助手。功能包括多轮对话、文案创作、逻辑推理、多模态理解、多语言支持,能够跟人类进行多轮的交互,也融入了多模态的知识理解,且有文案创作能力,能够续写小说,编写邮件等。
2024-08-20 11:31:30 692
原创 解决MYSQL 8 的 The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist
今早连接 `mysql8` 的的时候突然提示`1149-The user specified as a definer('mysql.infoschema@localhost') does not exist`; 但是引用程序里面从CURD还是可以正常使用的。infoschema`记录相关的信息损耗或者缺失。既然找到了产生这个问题的根源,就可以对症下药了 如果上述步骤没有报错,那么恭喜你成功解决了1149的问题;不过大概率会提示 这个问题的解决方案是: 然后重新创建账号;
2024-07-12 10:04:43 547
原创 MySQL高级查询
文本源自微博客(www.microblog.store),且已获授权.一. mysql基础知识1. mysql常用系统命令启动命令停止命令登录命令mysql -h ip -P 端口 -u 用户名 -p 本机可以省略 ipmysql -u 用户名 -p查看数据库版本(已登录)显示所有数据库进⼊指定的库use 库名;显示当前库中所有表查看其他库中所有的表show tables from 库名查看表的创建语句show create table 表名;查看表结构desc 表名;
2024-06-25 17:00:00 1022
原创 Java核心知识(一):JVM
JVM是可运行java代码的假象计算机,包括一套字节码指令集一组寄存器一个栈一个垃圾回收堆和一个存储方法域。JVM是运行在操作系统之上的,与硬件没有直接的交互。1.2 运行过程我们知道Java源文件,通过编译器能够产生响应的.Class文件,也就是字节码文件,而字节码文件又通过Java虚拟机中的解释器,编译成机器上的机器码。Java源文件—>编译器—>字节码文件字节码文件—>JVM—>机器码。
2024-06-25 16:57:12 1023
原创 Java核心知识(二):集合
JavaList一共有三个实现类,分别是:`ArrayList`、`Vector`、`LinkedList`ArrayList是最常用的List实现类,`内部是通过数组来实现的`,它允许对元素进行快速随机访问。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动,代价比较高。因此,它适合`随机查找和遍历,不适合插入和删除`。
2024-06-19 15:26:14 902 1
原创 Python进阶二: NumPy基础:数组和矢量计算
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。- 用于对整组数据进行快速运算的标准数学函数(⽆需编写循环)。- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。由于NumPy提供了一个简单易用的C API,因此很容易将数据传递给由低级语言编写的外部库,外部库也能以NumPy数组的形式将数据返回给Python。
2024-06-18 11:50:53 841
原创 Python进阶一: 重要的Python库
本书⼤部分内容都基于NumPy以及构建于其上的库。它提供了以下功能(不限于此): 快速高效的多维数组对象ndarray。用于对数组执⾏元素级计算以及直接对数组执⾏数学运算的 函数。- 成熟的C API, ⽤于Python插件和原生C、C、Fortran代 码访问NumPy的数据结构和计算工具。对于数值型数据,NumPy数组在存储和处理数据时要比内置的Python数据结构⾼效得多。此外,由低级语言(比如C和 Fortran)编写的库可以直接操作NumPy数组中的数据,⽆需进 ⾏任何数据复制⼯作。
2024-06-18 11:49:42 1008
原创 MySql进阶:深入理解MySQL语句执行逻辑
一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构>查询执行流程>语句执行顺序来探讨一下其中的知识。架构最好看图,再配上必要的文字说明。从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的`SQL Layer`,下层是各种各样对上提供接口的存储引擎,被称为`Storage Engine Layer`。
2024-06-18 11:44:19 519
原创 CompletableFuture原理与实践
CompletableFuture是Java 8引入的一个用于处理异步编程的类。它提供了一种方便的方式来执行异步操作并处理异步任务的结果。CompletableFuture可以用于执行异步计算、处理任务的结果、组合多个异步任务等。
2024-06-18 11:42:00 368
原创 MySQL从5.7升级到8.0步骤及其问题
Docker环境下,MySQL5.7升级到8.0,使用`mysqldump`方式迁移数据。在执行最后一步的数据恢复过程中,出现:`ERROR 3554 (HY000) at line 318: Access to system table 'mysql.innodb_index_stats' is rejected.
2024-06-18 09:57:31 1796
原创 mybatis条件构造bug
根据传递的参数,使用mybatis-plus动态构造查询语句。参数对象如下:部分构造条件如下: 当我传递的参数如:时,能够按照我的逻辑正确构造查询条件,即``条件可以满足,可是,当传递的参数如下:时,无法按照我的逻辑来处理,即条件
2024-06-06 11:02:33 524
原创 深入了解Nginx(二):Nginx的基础配置
本节介绍Nginx的基础配置,包括事件模型配置、虚拟主机配置、错误页面配置、长连接配置、访问日志配置等。一个典型的events事件模型配置块的示例如下:worker_connections指令用于配置每个Worker进程能够打开的最大并发连接数量,指令参数为连接数的上线。use指令用户配置IO多路复用模型,有多种模型可配置,常用的有`select` 、`epoll`两种。
2024-06-06 10:59:59 930
原创 深入了解Nginx(一):Nginx核心原理
下面有一个简单的例子,假定前头的正向代理服务器能将客户端IP编码成某个特殊的HTTP请求头(如X-My-IP),Nginx就可以通过ngx_realip模块的real_ip_header指令将X-My-IP请求头的IP取出,作为请求中的IP地址($remote_addr)。在上面的例子中,deny指令属于HTTP标准模块的ngx_http_access_module访问控制模块,而access_by_lua指令属于第三方ngx_lua模块,两个模块都有自己的计算结果,需要经过最终的结果统一。
2024-05-22 13:38:53 1685
原创 微服务与单体应用之间的调用问题
微博客使用了微服务架构`,并且docker容器化部署; `另有一个独立的单体应用,功能是: 作为ip地址解析中心;` 微服务集群以及该单体应用都部署到同一台服务器上面,有需要的时候微服务集群里面某个微服务会通过端口号调用该单体应用解析ip地址。由于两套系统都是部署在同一台服务器上面,因此,通过服务器内网地址调用比通过公网域名调用节省了CDN解析这个流程,性能上更加良好。
2024-04-26 11:08:47 462
原创 SpringCloud使用Nginx代理、Gateway网关以后如何获取用户的真实ip
微服务架构使用了Nginx代理转发、并且使用了SpringCloud的Gateway统一控制所有请求,现在有个需求: 做一个日子记录切面,需要记录用户请求的ip地址。在上述双重背景下,通过普通的方法获取用户ip地址是不可行的,只能获取到引用部署所在服务器的内网地址,必须要做一系列的设置以后才能正确获取到响应的地址。通过上述设置以后,我们就能正常在request请求头中获取相关信息了。
2024-04-25 10:53:15 1107 6
原创 http状态码413,并提示Request Entity Too Large
自己写的网站频繁出现413状态异常问题并且提示Request Entity Too Large,导致需要频繁删除本地cookie;排查了二级域名下的网站发现没有这个问题;
2024-04-12 16:30:38 3484
原创 ElasticSearch基础语法
ElasticSearch是一款由Java开发的开源搜索引擎,它以其出色的实时搜索、稳定可靠、快速安装和方便使用的特性,在Java开发社区中赢得了广泛的认可和应用。Elasticsearch为Java开发者提供了一个强大的搜索解决方案。无论是对于小型项目还是大型企业级应用,Elasticsearch都能提供高效的搜索功能,帮助开发者快速检索和处理大量数据。
2024-04-11 10:06:08 1072
原创 Python提示‘ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘
在学习Python编程使用。上述错误的原因是找不到。
2024-03-28 14:04:23 3219 3
原创 基于DFA算法的敏感词检测算法
敏感词检测,几乎是所有博客、文章、日志等这类公开性发表的以文字形式记录的作品都绕不过去的产品需求,那么,是否有一些比较高效的方法来检测文章的敏感词呢?`DFA算法`,全称为确定性有限状态自动机算法,是一种常见的字符串匹配算法。它通过构建一个状态转移来表现字符串匹配,具有高效、快速的特点。在实际应用中,DFA算法尝尝被用于词法分析、字符串匹配等领域。除了DFA算法,还有其他的自动机算法,比如KMP算法、BM算法等。这些算法在不同的场景下有着不同的应用,需要根据具体情况来选择那种算法。
2024-02-01 09:43:36 909
原创 CAS和自旋的区别
ABA问题是在分布式系统中常见的一种数据一致性问题。它的名称来源于三个操作:A(原始值)、B(第一个读取)、A(第二个读取)。ABA问题发生在一个线程T1读取了一个共享变量的值A,然后另一个线程T2修改了这个共享变量的值为B,然后又改回A,最后线程T1再次读取这个共享变量的值,发现仍然是A。在这种情况下,线程T1可能会错误地认为共享变量的值没有改变,从而导致数据不一致。
2024-01-31 16:25:50 917
原创 使用最大边界相关算法处理文章自动摘要
对于博客或者文章来说,摘要是普遍性的需求。但是我们不可能让作者自己手动填写摘要或者直接暴力截取文章的部分段落作为摘要,这样既不符合逻辑又不具有代表性,那么,是否有相关的算法或者数学理论能够完成这个需求呢?我想,MMR(Maximal Marginal Relevance)是处理文章自动摘要的杰出代表。
2024-01-31 15:01:56 630
原创 枚举+链对缓存实现以读取为主的请求接口
需要给一份问卷进行授权,授权的角色固定为4类,分别是: 农户、企业、金融机构、政府用户,这4类角色定义在字典里面,并且很少改动。这4类角色下面,可能有多个角色,这些角色通过字典的key关联到上述4个类型中的一个;在新增、编辑问卷的时候,需要把这4类所有的角色都展示出来,供管理员选择。
2023-12-13 11:25:51 378
原创 Java8 IfPresent 与 forEach 的组合操作
Java8的Optional接口是我们经常使用的一个接口,尤其是对对象进行判空的时候,需要经常使用到。但是,如果是对List进行判空、循环的话,就稍显繁杂了,因为几乎每次对List进行操作的时候,都需要先进行IfPresent,然后再调用forEach();那么,能否自己写一个方法,将这两结合起来呢?
2023-12-13 10:10:06 857
原创 Java8 根据自定义属性去重
有一个List集合,里面有n个Answer成员,成员种有m个属性,即:,现在我需要根据(属性不固定),应该如何实现呢?
2023-11-28 16:06:10 478
原创 mybatis collection 错误去重
发布A银行立项审核A银行出账在查询这条需求的时候,需要将这些阶段的处理记录连带查询出来,放在一个List里面。我们常用的方法就是使用LEFT JOIN关联查询,然后使用collection标签收集组合,事实上我就是使用这种方法去处理的,collection标签大致如下:</</
2023-11-28 12:00:05 432
原创 Redis打包事务,分批提交
接手一个老项目,在项目启动的时候,需要将xxx省整个省的所有区域数据数据、以及系统字典配置逐条保存在Redis缓存里面,这样查询的时候会更快;区域数据+字典数据一共大概20000多条,,前同事直接使用导致项目启动速度巨慢,再加上需要使用代理软件才能连接公司的数据库,,当真是苦不堪言;由于受不了这样的启动速度,因此决定自己动手优化。
2023-11-23 16:37:31 415
原创 自定义参数解析器,翻译实体属性
*** 自定义参数解析器,翻译租赁/小贷业务orderBy枚举*//*** 需要处理的类*/@OverrideClass<?// 判断是否需要对参数进行处理@Override// 在读取请求体后执行自定义逻辑: 金融租赁//小贷通过上述自定义的参数解析器翻译枚举的code属性值以后,就可以拿到对应的orderBy枚举值,然后查询的时候直接使用即可.(PS:参数解析器中,还可以使用多态等技术,优化处理各个if,简化处理逻辑).
2023-11-14 00:12:37 188
原创 解决若依框架多次list查询时,分页失效问题
Mybatis的分页原理,大致就是使用MyBatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 SQL,然后重写 SQL,实现分页查询。若依框架中,使用的是。
2023-10-07 11:56:37 2121
原创 Gateway网关提示Flipping property: system-server.ribbon.ActiveConnectionsLimit to use NEXT property: niws
自己有一个微服务项目,使用了GateWay进行限流处理;
2023-08-20 23:23:08 5073
原创 Java8 两个List求差
常规做法就是使用两个循环,遍历两个list,然后使用迭代器删除id相等的数据,这种方法比较简单,但是代码层级比较深,不值得推荐;,当这一项的userId不存在于exitList中时,就选取出来,重新放在一个List列表里面;),如果两个List都包含两种以上的属性,但是功能需求却相同时,又如何实现呢?上述是比较简单的情况,即:一其中个list仅仅包含一个属性(有两个实现方法: 常规方法 和。遍历 userList 中的数据,
2023-07-27 20:25:53 1905
原创 Java 使用枚举消除if else
if else判断时写代码过程中非常常见的,但是有些相对比较固定格式的if else判断却是我们可以尽可能避免的,其中,的作用在我们消除if else代码快的作用非常大,那么,我们该如何实现呢?,这样我们就可以不用烦人的if else if代码块判断了.配合使用消除比较固定格式的if else 代码判断了.其中,最重要的就是 枚举变量的。
2023-07-27 19:44:16 316
原创 任务队列的Java实现
当前项目中遇到这样一个需求: 将需要审核的文本提交给人工智能模型接口审核,等待模型接口审核完毕以后拿到审核结果返回给前端展示给用户(另:模型处理数据所消耗的时间会随着用户提交数据的复杂度有所变化)。,如果有多个用户在同一时间提交了文本审核需求,且恰好此时此刻模型需要较长时间处理,这样的话,按照通常的代码写法,是无法满足任务需求的,那么应该如何满足这个需求呢?此时此刻,我们可以使用。上述就是任务队列的Java实现基本过程。
2023-05-16 10:13:32 1914
原创 mybatis拦截器统一处理createBy、createTime、updateBy等字段
等字段是我们创建表的时候经常要用到的几个字段,但是我们不可能每一次在增删改查的时候都手动去修改或者添加这几个字段的属性值,我们可以在系统层面统一处理,如何实现呢?统一处理创建人/创建时间/更新人/更新时间等字段了。创建需要的实体,并集成基础类。配置文件,使上面的拦截器生效。经过以上步骤,就可以实现使用。创建mabatis拦截器。mabatis拦截器。
2023-05-05 20:13:12 3035
原创 Java使用策略模式+工厂模式优化if else 代码
if else if是代码中经常要用的语句块,如果选择分支不多的话还好,当时当选择分支很多的时候,就不能再这样做了;那么有什么办法可以优化多个选择分支结构呢?当选择结构过多时,就不再适用于if else方法了,此时我们可以使用设计模式中的策略模式+工厂模式优化if else语句块.经过上述重构,基本就能解决掉代码选择分支过多的问题。
2023-04-13 16:19:49 972
springmvc&JSR303;的jar包
2018-11-09
validation-api-1.1.0.cr1.jar
2018-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人