All Stories

spring缓存自定义resolver

本文介绍spring中自定义缓存resolver,通过自定义resolver,可以在spring的cache注解中增加附加处理。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-redis-resolver

In spring boot, Mar 13, 2022

spring使用kafka的三种方式(listener、container、stream)

本文介绍spring中使用Kafka的三种方式,其中container方式最灵活,但是开发相对较复杂,stream方式使用最简便,listener方式由于提供的最早,使用的较普遍。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-kafka

In spring boot, Oct 31, 2021

springboot集成groovy脚本

在我们的应用中引入脚本能力,可以很好的提升灵活性,我们的核心开发工作可以集中在核心平台能力的开发上,具体场景的功能可以通过脚本来实现,例如jenkins就可以通过groovy脚本来编写pipeline,可以很灵活的定制构建过程。spring本身提供了groovy集成的机制,分为两种方式,一种是用groovy开发程序,跟用java开发类似,需要经过编译。一种是将gr...

In spring boot, May 05, 2021

springboot单元测试技术

整个软件交付过程中,单元测试阶段是一个能够最早发现问题,并且可以重复回归问题的阶段,在单元测试阶段做的测试越充分,软件质量就越能得到保证。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-unit-test

In spring boot, Apr 18, 2021

spring自带线程池使用不当导致的死锁问题

Spring自带线程池使用很方便,不过在相对复杂的并发编程场景中,使用时还是需要根据使用场景仔细考虑配置,否则可能会遇到本文中提及的坑。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-taskexecutor-block

In spring boot, Jan 10, 2021

spring打印http接口请求和响应

在程序日志中打印出接口请求和响应的内容是一个基本的技术需求。如果在每个接口中实现请求响应的日志打印,程序编写会很繁琐,我们可以利用spring提供的机制,集中处理接口请求响应的日志打印。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-rest-log-request-resp...

In spring boot, Nov 22, 2020

spring动态数据源:只改配置即可接入新数据源

在实际的业务场景中,我们经常会遇到需要动态配置数据源的情况,只需要修改配置,就能增加新的数据源的接入,而不需要修改程序代码,通过动态数据源技术可以实现这个目标。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-dynamic-datasource

In spring boot, Sep 16, 2020

java并发编程:多线程、原子性与可见性

常用的java并发编程技术。具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/main/spring-currency

In spring boot, Apr 12, 2020

Reactive编程(三):一个简单的HTTP服务

书接上文 Reactive编程 ,我们已经了解了基础的API,现在我们开始编写实际的应用。Reactive对并发编程进行了很好的抽象,也有很多底层的特性需要我们去关注。当使用这些特性时,我们可以对之前隐藏在容器、平台、框架中的细节进行控制。

In spring boot, Mar 25, 2018

Reactive编程(二):代码演示

书接上文 Reactive编程 ,我们继续用真实的代码来解释一些概念。我们会更进一步理解Reactive的与众不同以及它的功能。这些例子很抽象,但能够让我们更进一步理解用到的API和编程风格,真实的感受它的与众不同。我们将会看到Reactive的核心元素,学习如何控制数据流,如果需要的话还会用到后台线程进行处理。

In spring boot, Mar 18, 2018