- 博客(101)
- 资源 (1)
- 收藏
- 关注
原创 如何在测试中让H2支持JSONB
在使用H2执行测试时,如果H2不支持某种数据库数据类型,如JSONB,则会导致测试执行失败。本文介绍了如何通过SQL语句创建用户自定义类型,从而扩展H2数据类型,以支持原本不支持的数据类型。
2023-05-07 10:34:00
1215
原创 通过Fake SFTP服务器测试文件服务器相关业务逻辑
本文介绍了一种在测试运行过程中启动一个基于内存文件系统的文件服务器的方法,即可以实现测试的稳定性,又无需Mock文件服务接口,同时还能够测试文件服务器行为的正确性。文章中采用的是更安全的SFTP文件服务器及其客户端SDK,希望对大家测试文件服务器相关的业务代码时有帮助。
2023-04-07 13:42:40
630
原创 基于MockServer测试访问其他服务接口的代码
系统的介绍了在测试访问其他服务接口的代码时,需要测试哪些内容,有哪些测试方式。并给出了一个基于MockServer的测试示例。
2023-03-31 14:07:28
392
翻译 Python类型提示方法速查表
python是一种运行时类型推断语言,因此在编写python代码时,IDE很难给出准确的代码提示,这大大降低了开发效率。本文给出来一个python的类型注释速查表,可以帮助开发人员了解如何给变量、内置类型、函数和类提供类型注释,从而让IDE给出正确的代码提示。
2023-03-18 23:12:41
154
原创 SpringBoot中一行代码解决字符串向枚举类型转换的问题
在Web开发,对于客户端传输的具有几个固定值的字符串,通常在DTO中使用Enum接收,以使得我们的代码更具有面向对象的风格。但是SpringBoot中默认是不支持String到Enum转换的。本文介绍了如何向应用中注入SpringBoot提供的String到Enum转换的Converter,分析了其原理和介绍了其优缺点。
2023-03-06 11:00:35
1585
原创 Mockito框架下如何优雅的验证调用Mock对象方法的入参
在单元测试场景中,为了测试某一个类通常需要mock其依赖的的类,再通过验证传给被调用的Mock对象的方法的入参是否符合期望来验证被测类业务实现的正确性。在Mockit测试框架下,通常是通过在argThat中使用lambda表达式来判断参数的正确性。这种方法具有代码不优雅和无法从测试用例错误信息中定位出不符合期望的入参参数的问题。本博客介绍了利用Mockit测试框架@Captor注解可以捕获Mock对象的方法的入参,再通过assert判断参数是否符合期望。通过该方法可以让测试代码更优雅,错误提示信息更有效。
2023-03-04 11:12:33
3199
原创 Linux/MacOS/Window平台粘贴板终端命令,欢迎大家使用、修改和提出意见
介绍了支持Linux/MacOS/Window平台的粘贴板终端命令,该命令的使用场景包括:拷贝文件内容到粘贴板、查看粘贴板内容、清空粘贴板、将粘贴板内容输出到目标文件等。
2023-01-13 23:06:09
591
原创 Mapstruct problem: Unknown property error
一种Mapstruct problem: Unknown property error 问题的分析与解决方法。
2022-12-04 22:22:15
1033
原创 找不到符号@SuperBuilder,你以为真的是Lombok的问题?
总结了一个由于MapStruct Converter错误引起的Lombok报错。
2022-07-30 17:41:34
4710
原创 log4j设置日志的时区
对于跨时区部署的服务,为了保证时间的一致性,通常将服务的时区设置为UTC时区,但是这样会导致日志打印的时区也变成UTC。由于用户所在的时区与日志打印的时区不同,测试、开发和运维定位问题带来不变。因此,需要能够调整日志打印的时区。本文提供了两种修改日志打印时区的方案。......
2022-07-30 09:47:43
1987
原创 MapStruct: Method has no source parameter named xxx. Method source parameters are “arg0, arg1,arg2“
MapStruct: Method has no source parameter named xxx. Method source parameters are "arg0, arg1,arg2"
2022-05-02 22:05:45
1873
1
原创 基于MariaDB4j实现持久层单元测试
分析了为什么要使用MariaDB4j代替H2实现数据持久层的单元测试。如何在项目中使用MariaDB4j。使用MariaDB4j会遇到哪些问题及相应的解决方案。
2022-04-16 21:42:11
3717
原创 Python项目依赖管理
第1步:生成依赖清单安装pipreqspip3 install pipreqs在代码目录上边执行命令生成requirements.txtpipreqs ./结果如下:第二步:安装依赖执行如下命令安全依赖:pip3 install -r requirements.txt
2021-08-18 09:21:12
346
原创 第3篇:微服务开发需要关注的问题
为了帮助设计和开发人员开发出一个高质量的基于微服务架构的应用,本篇文章介绍了在微服务的设计和开发过程中需要关注的问题。一般,这些问题都需要在系统设计阶段给出相应的解决方案。
2021-08-14 11:53:49
491
原创 第0篇:开篇
在微服务开过程中,我经常会思考的问题包括进程间架构设计、进程间通信方式、非功能需设计、进程内架构、设计如何落地、微服务治理等各种问题,我期望为我个人准备一套“利器”,这套“利器”可以作为我对微服务开发的指导。微服务开发100问是我从事微服务开发这几年来的经验总结,范围从理论到实践。内容来源于我遇到的问题和我的解决方案,工作中的同事给到的建议,同时包括我从其他资料看到的比较好的实践。虽然博客专栏的名字叫微服务开发100问,但其中包含的博客文章可能不到100篇,也可能会超过100篇,这里只是我立的一个fla
2021-07-30 08:32:48
110
原创 CodeReview效率提升工具:CodeReview Intellij IDEA插件
介绍了本人开发的Intellij IDE插件CodeReviewRecorder,提升Code Review问题的记录效率和方便问题的闭环跟踪。
2021-05-29 21:49:45
9375
2
原创 软件设计工具--PlantUML
慢慢发现在诸多技能中,coding不应该花很多时间。 在代码编写前和代码编写后的事情,往往才是需要花大量时间的。 想清楚你要做什么,要怎么做,以及之后要达成什么样的目标,检验结果是否符合预期这些事情,都应该比coding要重要。不然准备不充分,上来就写代码,是不可持续的。
2020-04-29 20:07:27
1376
原创 C++11新特性(持续更新)
C++11中常用新特性:Lambda表达式、自动类型推导、统一的初始化语法、nullptr、代码构造函数、右值引用、强类型枚举、静态断言、可变参数、noexcept、override标识符、线程库、新的智能指针类、新的C++算法、无序的集合
2020-04-12 21:13:59
917
原创 结构化代码-分层封装与按特性封装
结构化代码一直是开发人员比较纠结的地方,也是软件架构的基础。开发人员在写代码时总会首先考虑到某个类放在哪里比较合适。本文介绍了结构化代码的两种方法:分层封装(如clean架构)和按特性封装,及这两种方式的优缺点。开发人员可以根据项目特点在项目中单独或混合使用这两种结构化代码的方法。
2020-03-29 12:29:19
959
原创 Gradle之apt, annotationProcessor和kapt
介绍了APT的概念和处理流程,Java和Kotlin两种语言下如何在Gradle中配置APT,以及由于APT配置方式用错导致使用ARouter路由时始终提示“There is no route match the path [/xxx/xxx], in group [xxx][ ]”
2020-03-16 21:52:42
11068
3
原创 Semaphore和线程池的差异
通过代码示例分析了Semaphore与线程池的区别,并且用代码示例演示了使用Semaphore的一个最大误区
2020-03-05 13:37:12
1435
2
原创 微服务治理1 - Eureka服务治理架构及客户端装配和启动流程分析
主要介绍了基于Eureka的微服务治理架构,Eureka Client的装配和启动流程。
2020-02-29 17:27:52
956
原创 Spring Security源码阅读3-Spring Security过滤器链的初始化2
详细分析了FilterChainProxy过滤器链式调用的实现原理,Spring Security过滤器向Servlet容器的注册过程和用户请求调用Spring Security过滤器的过程。
2020-02-20 13:51:53
546
原创 Spring Security源码阅读2-Spring Security过滤器链初始化1
从源码角度详细分析了Spring Security过滤器链初始化的过程。
2020-02-18 20:09:28
536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人