Spring Boot 整合之前的内容
项目名称 | 描述 | 地址 |
---|---|---|
base-data-mybatis | 整合mybatis-plus(实际上官方教程已经很多,只做了自定义插件) | 未完成 |
base-jpa | JPA基础使用 | JPA 数据模型定义 |
base-jpa-query | JPA多表关联使用 | JPA 数据模型关联操作 |
base-log | 日志配置 | SpringBoot日志配置 |
base-rabbit | rabbitMQ简单使用 | RabbitMQ基础使用 |
base-rabbit3 | rabbitMQ一些自定义配置 | 消息确认回调、消息转换以及消息异常处理 |
base-rabbit-delay | rabbitMQ延时队列 | 延时队列和消息重试 |
base-redis | redis简单使用 | RedisTemplate基础使用;Redis实现简单的发布订阅以及配置序列化方式 |
base-redis-lock | redis分布式锁 | Redis分布式锁的简单实现 |
base-redis-delay | 基于有赞的延时消息方案的简单实现 | 延时队列的简单实现 |
base-swagger | swagger使用 | wagger2使用 |
base-mongodb | mongodb简单使用 | MongoDB安装以及Spring Boot整合,MongoDB实体创建以及简单CRUD,MongoDB聚合操作,MongoDB分组去重以及MongoDB联表查询 |
关于版本
依赖 | 版本 |
---|---|
springboot | 2.0.8.RELEASE |
mongodb | 4.0.14 |
项目地址
因为涉及的代码较多,所以并不会贴出所有代码。本篇文章涉及的源码下载地址: https://gitee.com/daifyutils/springboot-samples
消息处理
针对消息的处理主要有两种方式:
- 对消息序列化的设置
- 实现
RecordMessageConverter
接口对消息进行处理
消息序列化
消息序列化主要是在初始化factory的时候对key和value进行操作的序列化设置。
@Bean
@ConditionalOnMissingBean(ConsumerFactory.class)
public ConsumerFactory<?, ?> kafkaConsumerFactory() {
DefaultKafkaConsumerFactory<String, Object> consumerFactory = new DefaultKafkaConsumerFactory<>(
this.properties.buildConsumerProperties());
// 对数据进行反序列化
consumerFactory.setKeyDeserializer(new StringDeserializer());
// 需要注意在对值进行解密的时候,kafka需要指定安全包名,或者使用*表示所有
JsonDeserializer jsonDeserializer = new JsonDeserializer();
jsonDeserializer.addTrustedPackages("*");
consumerFactory.setValueDeserializer(jsonDeserializer);
return consumerFactory;
}
@Bean
@ConditionalOnMissingBean(ProducerFactory.class)
public ProducerFactory<?, ?> kafkaProducerFactory() {
DefaultKafkaProducerFactory<String, Object> factory = new DefaultKafkaProducerFactory<>(
this.properties.buildProducerProperties());
String transactionIdPrefix = this.properties.getProducer()
.getTransactionIdPrefix();
// 对数据进行序列化
factory.setKeySerializer