Spock测试框架中的mock类型 Spock测试框架中的mock类型 最近使用Spock做单元测试比较多,但是对其中的Mock理解的比较混乱,今天抽些时间对其中的测试类型做测试,以此来揭示其中的区别。 认识mocking 和 stubing 和 Spying mocking翻译成中文就是 “模拟”,stubing翻译成中文就是”存根”,spying翻译成中文就是”间谍”。 模拟拥有的能力是:对方法调用进行验证,在spock中 2022-10-13 #Spring #Spock #单元测试
project reactor中的Mono.from操作符 project reactor中的Mono.from操作符 reactor项目中经常会用到Mono.from操作符,主要包含下面四个,他们的返回值如下 Mono.fromFuture(); --> MonoCompletionStage Mono.fromCallable(); -->MonoCallable Mono.fromRunnable(); 2022-08-19 #reactor #Mono.fromCallable
mysql 密码算法 mysql 密码算法mysql 5.x版本后,密码算法有变更,在此记录下来。 首先看mysql连接时,服务端发送的握手报文,这里主要是保存两个salt ![image-20220511150444355](/img/in/2022-05-11-mysql 密码算法/image-20220511150444355.png) 然后再看客户端返回的数据包,重要的部 2022-05-11 #mysql #技巧
spring @lazy注解的使用 spring @lazy注解的使用在spring中@lazy注解表达延迟的含义,但在不同情况下,这里的延迟并不是同一层意思。下面将描述我发现的两层含义。 1. 延迟初始化bean 首先我们知道,容器启动之前会扫描所有的class文件,并将需要加载到容器中的类,整理成BeanDefinition存储。容器启动时将依次将BeanDefinition构建成bean,构建过程中同时解决依赖注入和循环 2022-05-11 #技巧 #spring #springboot
jackson序列化优先级和注解顺序 jackson序列化优先级和注解顺序先说结论: 序列化时getter方法优先于字段,注解添加到字段上或添加在getter方法上同样生效。 1. 创建serializerProvider调用serializeValue方法12345678910111213141516protected final void _writeValueAndClose(JsonGenerator g, Object 2022-04-19 #jackson
spring中ObjectFactory , ObjectProvider 和 FactoryBean spring中ObjectFactory , ObjectProvider 和 FactoryBeanObjectFactory , ObjectProvider这两个类是spring的提供的工厂方法的辅助类,ObjectFactory在 1.0.2版本添加进去的,他只有一个getObject方法ObjectProvider在4.3版本添加,它继承了ObjectFactory接口,添加了更多方法, 2022-03-26 #spring #ObjectFactory #ObjectProvider #FactoryBean
project reactor中的onErrorXxx操作符 project reactor中的onErrorXxx操作符 reactor项目中存在很多操作符其中一些与处理异常有关的操作符,它们都以onError开头,一共五个下面我们逐个分析他们。 onErrorMap onErrorResume onErrorReturn onErrorContinue onErrorStop 三个是用来处理上游传递的错误信号这三个是一组的,他们原理类似,分别是: 2022-03-17 #reactor #onErrorMap #onErrorResume #onErrorReturn #onErrorContinue #onErrorStop
mybatis dynamic查询指定字段 mybatis dynamic查询指定字段 使用mybatis dynamic做查询是,通常情况下会查询所有字段,因为多查几个字段对性能影响不会很大。但是有些情况下,查询记录数量较多,多查的字段就有很大的影响了。此时我们希望只查询指定的字段。 第一种写法一般写法是这样的 123testMapper.selectMany(MyBatis3Utils.select(columns,test, ds 2022-03-07 #mybatis #mybatis dynamic
Flux parallel操作符的用法 Flux parallel操作符1. parallel操作符 parallel操作符执行过后,会生成一个新的flux 即parallelFLux。他能够接受多个订阅者,他会从原始flux中请求perfetch个元素,将上游传递push过来的元素依次按顺序分配给子订阅者。 分配上游元素过程是:依次分配给下游每个订阅者,当某个子订阅者请求数已经满足时,将跳过此订阅者继续向下一个子订阅者分配。 2022-01-17 #flux #parallel #reactor
reactor中的线程池 reactor中的线程池1.DelegateServiceScheduler将任务委托给底层单个线程池,和直接使用线程池无本质区别。 2.SingleScheduler单线程的scheduler,和java自带的一致。 3.ImmediateScheduler在主线程执行的scheduler。 4.ParallelScheduler此scheduler会将任务均匀分配给内部的单线程线程池执行, 2022-01-17 #flux #reactor #线程池