- 博客(692)
- 收藏
- 关注
原创 如何从零手写实现数据库连接池 dbcp?
*** 池化的连接池/*** 是否繁忙* @return 状态/*** 设置状态* @param busy 状态/*** 获取真正的连接* @return 连接/*** 设置连接信息* @param connection 连接信息/*** 设置对应的数据源* @param dataSource 数据源/*** 获取对应的数据源信息* @return 数据源这里我们直接继承了 Connection 接口,实现时全部对 Connection 做一个代理。
2024-03-13 11:09:14 2307
原创 sensitive-word 敏感词开源工具使用入门
有时候我们希望将敏感词的加载设计成动态的,比如控台修改,然后可以实时生效。v0.0.13 支持了这种特性。简化伪代码如下,数据的源头为数据库。MyDdWordAllow 和 MyDdWordDeny 是基于数据库为源头的自定义实现类。@Autowired@Autowired/*** 初始化引导类* @return 初始化引导类*/@Bean// 各种其他配置.init();敏感词库的初始化较为耗时,建议程序启动时做一次 init 初始化。
2023-12-18 15:37:03 2266
原创 面试官:你们项目中是怎么做防重复提交的?
面试经历记得刚毕业的时候,有一次去参加面试。上来面试官问我:“你们项目中是怎么做防重复提交的?”一开始听到这个问题是蒙圈的,支支吾吾半天没回答出来。然后面试官直接来一道算法题,喜闻乐见地面试失败。多年过去,虽然很少接触到控台应用,但是近期对于防止重复提交却有了一点自己的心得。在这里分享给大家,希望你工作或者面试中遇到类似的问题时,对你有所帮助。本文将从以下几个方面展开:(1)重复提交产生的原因(2)什么是幂等性(3)针对重复提交,前后端的解决方案(4)如果实现一个防重复提交工具产生原
2020-08-05 22:09:23 5015
原创 java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架
产品需求产品经理需要导出一个页面的所有的信息到 EXCEL 文件。需求分析对于 excel 导出,是一个很常见的需求。最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件。客户体验 & 服务性能客户体验如果导出的文件比较大,比如几十万条数据,同步导出页面就会卡主,用户无法进行其他操作。服务性能导出的时候,任务比较耗时就会阻塞主线程。如果导出的服务...
2018-11-26 21:52:07 30044
原创 java retry(重试) spring retry, guava retrying 详解
系列说明java retry 的一步步实现机制。 java-retry 源码地址情景导入简单的需求产品经理:实现一个按条件,查询用户信息的服务。小明:好的。没问题。代码UserService.javapublic interface UserService { /** * 根据条件查询用户信息 * @par...
2018-08-08 18:01:54 17161 2
原创 mockito-02-spring aop 与 mockito 冲突及解决方案
我们通过把 spring 增强的代理恢复为普通对象,然后让 mockito 初始化处理。2)将被 spring 代理的对象还原为原始对象,让 mockito 可以正常代理。1)将 mock 的数据设置到对应的 bean 中,解决 mock 失效问题。这种,如果 service 被代理的话,会导致 mock 无效,断言无效。这里可以发现需要修改 init 方法,最好是统一继承自抽象测试类。可以通过这个方法,把所有的 mock 对象恢复。改进思路:我们通过反射,将每一个属性还原。即可解决注入失败问题。
2024-03-28 14:27:22 302
原创 mockito-01-overview mockito 简介及入门使用
Mock通常是指,在测试一个对象A时,我们构造一些假的对象来模拟与A之间的交互,而这些Mock对象的行为是我们事先设定且符合预期。通过这些Mock对象来测试A在正常逻辑,异常逻辑或压力情况下工作是否正常Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。
2024-03-28 14:26:18 400
原创 test 之 jmockit-05-Measuring code coverage 测试代码覆盖率
coverage-outputDir:输出目录的绝对或相对路径,用于写入任何“coverage.ser”或“index.html”文件(加上HTML报告的其余“.html”文件,在自动创建的子目录中) 目录)。因此,输出模式“serial”和“serial-append”之间的区别在于,对于第一个模式,我们有多个“coverage.ser”文件(每个文件位于单独的测试运行所使用的不同目录中),而对于第二个模式,我们共享 所有测试运行之间的单个数据文件。但是,同时指定每对中的一个也是有效的。
2024-03-28 14:24:47 464
原创 test 之 jmockit-04-Faking 伪造
在运行时,真正发生的情况是,伪造的方法/构造函数的执行被拦截并重定向到相应的伪造方法,然后该方法执行并返回(除非抛出异常/错误)给原始调用者,而这一调用者没有注意到 实际上执行了不同的方法。当假类应用于真实类时,后者会获取那些具有相应假方法的方法和构造函数的实现,这些方法和构造函数会暂时替换为匹配假方法的实现,如假类中所定义的。在上面的测试中,所有对实现 Service#doSomething() 的方法的调用都将被重定向到假方法实现,无论实现接口方法的实际类如何。
2024-03-28 14:23:20 458
原创 test 之 jmockit-03-Mocking 模拟
为了根据重播时收到的参数来决定记录期望的结果,我们可以使用 Delegate 对象,如下例所示。@TestDelegate 接口是空的,仅用于告诉 JMockit 重播时的实际调用应委托给指定对象中的“delegate”方法。该方法可以有任何名称,只要它是委托对象中唯一的非私有方法。至于委托方法的参数,要么与记录方法的参数匹配,要么不存在。在任何情况下,委托方法都可以有一个 Invocation 类型的附加参数作为其第一个参数。
2024-03-28 14:22:17 529
原创 test 之 jmockit-01-overview 概览
自动化开发人员测试可以分为两大类,无论它们是针对单个程序“单元”、多个一起工作的此类单元,还是被测系统的整个“切片”(“SUT”)。在这里,我们对皮下测试特别感兴趣,这些测试不是通过应用程序 UI 执行的,而是测试有意义的业务场景中涉及的所有程序单元。此类测试的范围从通过应用程序 UI 运行的端到端系统测试(当 SUT 有 UI 时)到执行一小组相互关联的单元的测试。在下面的 JUnit 测试类中,每个测试都将验证持久性操作的正确执行以及对电子邮件 API 的预期调用。JMockit 两者都支持。
2024-03-28 14:20:37 338
原创 jmockit-01-test 之 jmockit 入门使用案例
(2)注解@Test、@Mocked、@Injectable、@Capturing是和new Expectations()方式搭配使用。然后@Mocked、@Injectable、@Capturing又有不同的特性,就可以解决不同场景下的Mock了。2)repaly:在这个阶段,执行单元测试Case,原先在record 阶段被录制的调用都可能有机会被执行到。主要使用@Test、@Mocked、@Injectable、@Capturing和Expectations搭配使用实现Mock。
2024-03-28 14:19:05 484
原创 blog-engine-10-middleman 静态站点生成器,利用了现代 Web 开发中的所有快捷方式和工具
由于个人一直喜欢使用 markdown 来写个人博客,最近就整理了一下有哪些博客引擎。感兴趣的小伙伴也可以选择自己合适的。
2024-03-28 09:19:04 765
原创 blog-engine-09-nuxt 构建快速、SEO友好和可扩展的Web应用程序变得轻松
由于个人一直喜欢使用 markdown 来写个人博客,最近就整理了一下有哪些博客引擎。感兴趣的小伙伴也可以选择自己合适的。
2024-03-28 09:18:06 339
原创 blog-engine-08-vuepress 以 Markdown 为中心的静态网站生成器
由于个人一直喜欢使用 markdown 来写个人博客,最近就整理了一下有哪些博客引擎。感兴趣的小伙伴也可以选择自己合适的。
2024-03-27 11:31:33 660
原创 blog-engine-07-gatsby 建极速网站和应用程序 基于React的最佳框架,具备性能、可扩展性和安全性。
由于个人一直喜欢使用 markdown 来写个人博客,最近就整理了一下有哪些博客引擎。感兴趣的小伙伴也可以选择自己合适的。
2024-03-27 11:30:25 339
原创 devika AI 软件工程师,Devin 的开源替代方案。程序员会被替代吗?
请查看此问题:#3)大型语言模型:Devika 利用像 Claude、GPT-4 和通过 Ollama 支持的本地语言模型等最先进的语言模型,用于自然语言理解、生成和推理。Devika 是一款先进的 AI 软件工程师,能够理解高水平的人类指令,将其分解为步骤,研究相关信息,并编写代码以实现给定的目标。Devika 是一款自主 AI 软件工程师,能够理解高水平的人类指令,将其分解为步骤,研究相关信息,并编写代码以实现给定的目标。关键字选择:选择排名靠前的关键字作为当前上下文中最相关和最具信息量的关键字。
2024-03-26 23:49:38 602
原创 blog-engine-06-pelican 静态网站生成 windows11 安装实战笔记
由于个人一直喜欢使用 markdown 来写个人博客,最近就整理了一下有哪些博客引擎。感兴趣的小伙伴也可以选择自己合适的。
2024-03-26 08:54:39 895
原创 blog-engine-06-pelican 静态网站生成 支持 markdown 和 reST 语法
由于个人一直喜欢使用 markdown 来写个人博客,最近就整理了一下有哪些博客引擎。感兴趣的小伙伴也可以选择自己合适的。
2024-03-26 08:52:17 618
原创 Linux Load AVG linux 平均负载是什么? 简单解释说明
系统平均负载是指在特定时间间隔内运行队列中的平均进程数,换句话说就是系统在过去1分钟、5分钟、15分钟内运行进程队列中的平均进程数量。[root@localhost]# ps -aux //可查看正在使用中的进程“R”
2024-03-25 22:16:27 450
原创 linux ln Linux 系统中用于创建链接(link)的命令
这会创建一个指向源文件的硬链接,并使用目标链接指定链接的名称。硬链接会使得一个文件拥有多个文件名,删除任何一个文件名并不会影响文件本身的存在,只有当所有链接都被删除时,文件的内容才会被释放。命令删除链接,对于符号链接,只会删除链接文件本身,而不会影响源文件。链接可以分为两种类型:硬链接(Hard Link)和符号链接(Symbolic Link,也称为软链接)。链接可以分为两种类型:硬链接(Hard Link)和符号链接(Symbolic Link,也称为软链接)。的硬链接,它们指向相同的文件内容。
2024-03-25 22:14:49 652
原创 Linux curl 类似 postman 直接发送 get/post 请求
curl命令一般在电脑的终端执行,上述代码中的“http://localhost:8080/cnd_inke/qc/v2/inke”为你要请求的目标地址,-H后面为请求头,可以添加多个,curl默认的请求方式是GET,我们要使用POST的话,就得加上“-X POST”,然后关键的来了,我们的请求体,也就是request一般不是json格式的嘛,此时只需要添加-d后,加上单引号,单引号里面添加花括号,然后json格式的key-value添加进去即可。选项可以发送 POST 请求,并指定数据。
2024-03-25 22:12:48 664
原创 sensitive-word-admin v1.3.0 发布 如何支持敏感词控台分布式部署?
分布式环境下还是尽可能的追求架构的简洁性,这里只是一种实现的方式,也可以自己实现基于 push 的模式。以数据库存储自定义场景为例,如果页面修改了敏感词信息,那么如何通知到部署的多台敏感词客户端呢?优点是实时性比较高,缺点是需要引入额外的通知机制,需要通知的服务比较多时,也比较麻烦。修改时同时通知敏感词发生了变化,每个敏感词客户端接收到通知后,重新初始化敏感词信息。但是实际业务,敏感词总是随着时间不断变化的,所以我们需要支持敏感词的动态修改。如果我们的敏感词部署之后,不会变化,那么其实不用考虑这个问题。
2024-03-25 09:38:08 1812
原创 马斯克开源的 grok-1 大模型底层 Transformer 模型到底是个啥?(翻译)
由于老马个人一直是后端研发,虽然对 AI 神往已久,但是没有真正的踏入过这个领域。网上的资料也大都是喧嚣式的,并没有静下心来介绍这个 gork,其实看完也没啥收获。临渊羡鱼,不如退而结网。这是一篇比较不错的文章,做了个简单的翻译。
2024-03-25 09:34:49 988
原创 马斯克开源的 grok-1 大模型底层 Transformer 模型到底是个啥?(翻译)
由于老马个人一直是后端研发,虽然对 AI 神往已久,但是没有真正的踏入过这个领域。网上的资料也大都是喧嚣式的,并没有静下心来介绍这个 gork,其实看完也没啥收获。临渊羡鱼,不如退而结网。这是一篇比较不错的文章,做了个简单的翻译。
2024-03-25 09:32:49 1033
原创 马斯克开源的 grok-1 底层 Transformer 模型论文 《Attention is All You Need》
大家好,我是老马。网上的大部分关于 gork-1 的内容都是浅尝辄止,本文老马和大家一起简单看一下马斯克这两天开源的 grok-1 的底层 Transformer 的提出论文。本文翻译自 Vaswani 等人在论文《Attention is All You Need》。目前主导的序列转导模型基于复杂的循环或卷积神经网络,包括编码器和解码器。表现最佳的模型还通过注意力机制将编码器和解码器连接起来。我们提出了一种新的简单网络架构,Transformer,完全基于注意力机制,不需要循环和卷积。
2024-03-25 09:28:34 592
原创 linux telnet 用来判断网络是否通
请注意,Telnet是一种不安全的远程登录协议,建议使用更安全的替代方案,如SSH。SSH提供了加密通信,而Telnet在传输数据时是明文的,可能导致安全风险。输入 quit + 回车。
2024-03-24 20:03:58 345
原创 linux 3 个 profile 配置文件区别? /etc/profile + .bashrc + .bash_profile
在Linux系统中,环境变量的配置通常是通过修改用户的配置文件来实现的。用户可以根据自己的需求选择在哪个文件中进行配置。一般来说,用户的个性化配置信息应该存放在。存在,它会被优先执行;
2024-03-24 20:02:59 725
原创 linux netstat-显示系统网络连接、路由表、接口统计、masquerade 连接等信息
netstat(网络统计)是一个用于显示系统网络连接、路由表、接口统计、masquerade 连接等信息的命令。它可以帮助你监控系统的网络活动和了解网络配置。
2024-03-24 20:00:38 833
原创 YAML-02-yml 配置文件 java 整合使用 yamlbeans + snakeyaml + jackson-dataformat-yaml
它支持YAML 1.1规范,并提供了一个简单易用的API,用于在Java应用程序中处理YAML数据。Jackson是一个流行的Java JSON处理库,它也提供了对YAML格式的支持。如果你希望拥有更高的性能和丰富的特性,同时也需要支持JSON和其他数据格式,那么Jackson YAML是一个强大的工具。如果你只需要基本的YAML处理功能,并且希望使用简单的API,YAMLBeans可以满足你的需求。这些开源库都提供了方便的方式来处理YAML格式的数据,你可以根据自己的需求选择其中一个进行使用。
2024-03-24 11:29:44 1023
原创 YAM yml 配置文件介绍
字符串可以写成多行,从第二行开始,必须有一个空格缩进。换行符会被转为空格。是一种面向所有编程语言的人类友好的数据序列化标准。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。单引号中如果还有单引号,必须连续使用两个单引号转义。表示注释,从这个字符一直到行尾,都会被解析器忽略。缩进时不允许使用Tab键,只允许使用空格。如果字符串中有空格或特殊字符,使用。
2024-03-24 11:28:36 723
原创 Logstash 日志处理转换 ETL 入门介绍
Logstash 是一个灵活的、开源的数据收集、丰富和传输管道,旨在高效处理日志、事件和非结构化数据源的不断增长,以便将其分发到各种输出,包括 Elasticsearch。和 ELK(ElasticSearch+Logstash+Kibana) 构建日志系统。1、遗憾的是,此插件仅支持 logstash 版本 (1.5+, 2.1]嗯,这是个问题... 似乎我们应该另辟蹊径 ==!注意:默认情况下,它有一个名为。最后,启动 logstash。2、在安装此插件之前,您应该。编辑完成后,我们应该。
2024-03-23 11:58:58 1028
原创 开源的数据可视化平台 Kibana 日志可视化 mac 安装笔记
Kibana 是一个开源的数据可视化平台,允许您通过令人惊叹和强大的图形与数据进行交互,这些图形可以组合成自定义的仪表板,帮助您从数据中分享洞见。设置为您的 Elasticsearch 实例。注意: Kibana 4.6.x 需要。,您可以看到 kibana 首页。
2024-03-23 11:55:23 513
原创 项目管理平台-01-Phabricator 入门介绍 一套集成的强大工具,帮助公司构建更高质量的软件
这段代码是用来配置 Phabricator 连接到 MySQL 数据库的信息。其中包括主机名、端口号、用户名和密码。接着,它要求你运行存储升级脚本以设置 Phabricator 的数据库模式。Phabricator 是一套集成的强大工具,帮助公司构建更高质量的软件。来找到 apache 目录。
2024-03-22 09:08:39 291
原创 代码质量管理 SonarQube-01-入门介绍
备注:排除对 JavaScript 的校验,指定属性值。根据提示,生成 admin 对应的 token。确保已经安装了 JDK 和 MySQL。是一个开放平台,用于管理代码质量。我的 SonarQube 版本是。勾选 java=》maven 项目。在 MySQL 中创建数据库。即可看到对应的 QA 结果。并为 Sonar 配置。将Sonar设置为中文。idea 中可以安裝。
2024-03-22 09:06:52 773
原创 代码质量管理 SonarQube-01-入门介绍
备注:排除对 JavaScript 的校验,指定属性值。根据提示,生成 admin 对应的 token。确保已经安装了 JDK 和 MySQL。是一个开放平台,用于管理代码质量。我的 SonarQube 版本是。勾选 java=》maven 项目。在 MySQL 中创建数据库。即可看到对应的 QA 结果。并为 Sonar 配置。将Sonar设置为中文。idea 中可以安裝。
2024-03-22 09:05:32 630
原创 项目管理平台-01-BugClose 入门介绍
如对Project, User, Wiki, Task...都可以打标签。1.对当前的任务进度等进行统计。每个人的完成量各方面。一般优先级只是一种约定,用户自己使用时可自己定义。工作流中的每一样东西都应该有优先级。可设置自定义的优先级。1.每个任务只应该属于一个人。但是可以被多个人关注。可关|注公|众|号【老马啸西风】,更多技术文章。可以用于标识几乎所有的东西。包含不同的项目(Project)。可针对此流程,自己设计一个练手。以上工作流后期支持自定义扩展。支持默认标签,以及自定义扩展。简单易用,支持扩展。
2024-03-21 09:01:27 256
原创 项目管理平台-01-jira 入门介绍 缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件
是一个缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件,开发者是澳大利亚的Atlassian。团队可以访问十几个开箱即用的报告,通过实时,可操作的见解了解他们的团队如何通过sprint进行冲刺。概述全局,与利益相关者沟通计划,并确保您的路线图连接到您团队的工作 - 只需点击几下。JIRA这个名字并不是一个缩写,而是截取自“Gojira”,日文的哥斯拉发音。灵活的看板可以让您的团队全面了解下一步,从而在最短的周期内不断提供最大的输出。创建可映射到任何工作方式的可自定义工作流程。
2024-03-21 09:00:10 389
原创 持续集成平台 02 jenkins plugin 插件
到 /Users/houbinbin/.jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner on Jenkins。要让 Jenkins 编译完成后,自动将代码传给 SonarQube 进行分析,则需要配置 Jenkins 中的目标项目。选择你的项目–》配置–》添加构建前步骤-》执行 SonarQube 扫描仪。也就是要将这个文件下载下来,并解压缩到目标路径。在 Jenkins 中安装。
2024-03-20 09:01:47 1357
原创 持续集成平台 02 jenkins plugin 插件
到 /Users/houbinbin/.jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner on Jenkins。要让 Jenkins 编译完成后,自动将代码传给 SonarQube 进行分析,则需要配置 Jenkins 中的目标项目。选择你的项目–》配置–》添加构建前步骤-》执行 SonarQube 扫描仪。也就是要将这个文件下载下来,并解压缩到目标路径。在 Jenkins 中安装。
2024-03-20 09:01:04 863
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人