SpringBoot
F_Hello_World
这个作者很懒,什么都没留下…
展开
-
springboot2.x +rabbitmq使用和源码分析四(消费者-Listener使用)
序言:当数据通过生产者产生到发送到exchange交换器,再通过设定的路由规则,经过routingKey,最终会落地到queue 中。这个时候引出了Listener消费者了。在第一章中有对RabbitAnnotationDrivenConfiguration该类中源码做过基本分析,该类最大的作用就是通过配置文件的设定用于构建RabbitListenerContainerFactory(该接口的实现,工厂设计模式用以创建核心的MessageListenerContainer容器类,而该类Message原创 2020-07-17 00:20:33 · 1496 阅读 · 0 评论 -
springboot2.x +rabbitmq使用和源码分析三(消息转换器)
序言:在第一篇和第二篇中,描述了自动装配的过程以及如何发送消息到mq。这里会涉及到将数据转化的工作,也就是如何将我们string或者java对象转化到二进制数据,传输到rabbitmq服务器中(在网络中只能传输二进制数据),而又是如何将到rabbitmq服务器传输的二进制数据转化为监听者需要的实体类型,这里就用到了消息转换器(也就是MessageConverter接口,在RabbitAnnotationDrivenConfiguration我们可以看到有该类的定义并将该类与监听工厂类绑定,在Rabbit原创 2020-07-13 22:52:08 · 629 阅读 · 0 评论 -
springboot2.x +rabbitmq使用和源码分析二(生产者配置)
1:手动构建RabbitmqQueueExchangeAutoConfiguration该类用于初始化 queue exchange 并进行Binding绑定package com.fc.rabbitmq_demo.config;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotat原创 2020-07-13 00:10:11 · 931 阅读 · 0 评论 -
springboot2.x +rabbitmq使用和源码分析一(自动装配)
序言:之前描述过springboot对kafka对支持,这里主要描述springboot对于rabbitmq的支持。这里建立在对rabbitmq有一定了解,若是一个新手建议参考官网结合一些博客来自我学习。springboot对于rabbitmq各核心组件初始化都在:autoconfigure包下 (这里用的springboot版本较新2.3.1)上面描述的这些类中,主要例举一个核心类并对其介绍:1: RabbitProperties该类从命名上也知道它是一个属性配置文件类,映..原创 2020-07-12 13:41:01 · 859 阅读 · 0 评论 -
springboot2.x +redis使用和源码分析三(序列化器)
目录1:spring-redis中提供的默认序列化器1.1:StringRedisSerializer1.2:JdkSerializationRedisSerializer1.3:Jackson2JsonRedisSerializer1.4:GenericJackson2JsonRedisSerializer1.5:GenericToStringSerializer...原创 2020-01-01 14:38:14 · 433 阅读 · 0 评论 -
springboot2.x +redis使用和源码分析二(RedisTemplate)
目录序言:本文讲述RedisTemplate对象如何构建以及该对象对于redis提供的功能的支持1:定义RedisTemplate2:基本使用Ddemo3:RedisTemplate对Pipelined支持4:RedisTemplate对事务支持5:RedisTemplate对Lua语言支持5.1:使用内置字符串形式5.2:以文件的形式5.3:使用Lua的一些应...原创 2019-12-30 23:33:12 · 814 阅读 · 1 评论 -
springboot2.x +redis使用和源码分析一(springboot自动装配源码分析)
序言:个人感觉springboot的源码是web应用开源框架中写的最好的,观看它的源码可以学习它的编码风格,代码设计思想,如何做到给予使用者最好的使用体验,隐藏连接各应用组件的实现细节,极大降低类开发者实力的要求。查看springboot对各组件的自动装配实现,可以很详细的了解到spring对于组件核心类的初始化过程,以及核心类的作用以及之间的依赖关系。springboot提供的所有的自动...原创 2019-12-26 18:31:55 · 934 阅读 · 0 评论 -
springboot2.x +kafka使用和源码分析九(KafkaListenerEndpointRegistry暂停启动容器)
我们在运行中如果需要暂停启动容器时可以通过此类KafkaListenerEndpointRegistry来处理。KafkaListenerEndpointRegistry源码(只解释了核心代码):public class KafkaListenerEndpointRegistry implements //当spring销毁bean时执行操作 Dispo...原创 2019-12-04 23:57:50 · 4067 阅读 · 0 评论 -
springboot2.x +kafka使用和源码分析八(自定义分区器)
1:DefaultPartitioner默认分区器如果producer没指定落地到指定partition中,Kafak通过默认的分区器对数据进行partition,默认的分区的规则是对key进行hash取值 % 分区数, 相同的key会分布到同一分区中。如果没指定key,则就按照轮询算法将消息均匀的分布在主题的可用分区上。/** * * 自定义分区器 */public class...原创 2019-12-04 23:13:05 · 998 阅读 · 0 评论 -
springboot2.x+kafka使用和源码分析七(消费者和生产者使用拦截器)
Apache Kafka提供了一种向生产者和消费者添加拦截器的机制,此拦截器由kafka进行管理和spring无关。所以无法使用Spring依赖注入功能。但是我们可以使用拦截器提供的config()方法来手动来获取这些bean依赖。第一步:自定义拦截器:/** * 自定义生产者拦截器 * @author fangyuan */public class PersonInfoProd...原创 2019-12-03 23:15:15 · 672 阅读 · 0 评论 -
springboot2.x +kafka使用和源码分析五(消费者配置使用)
上一章描述springboot对于kafka事务的支持,本章主要叙说springboot对于consumer支持。这里通过两种方式第一种:由springboot框架来初始化基础bean,我们只需要在yml配置文件中编写配置即可。如下图所示(常规配置 具体所有配置可参考http://kafka.apache.org/documentation/的consumer):springbo...原创 2019-12-03 20:02:57 · 1123 阅读 · 0 评论 -
springboot2.x +kafka使用和源码分析四(kafka事务)
kafka对于事务的支持(0.11.0.0客户端库开始添加了对事务的支持,kafka针对于事务机制新增名为 __transaction_state topic用以保存数据): KafkaTransactionManager:与spring提供的事务机制一起使用(@Transactional,TransactionTemplate等等)。 使用KafkaMessageListene...原创 2019-12-02 22:05:34 · 2468 阅读 · 5 评论 -
springboot2.x +kafka使用和源码分析三(生产者配置)
上一章描述springboot支持对于topic进行配置管理,本章主要叙说springboot对于produce支持。这里通过两种方式第一种:由springboot框架来初始化基础bean,我们只需要在yml配置文件中编写配置即可。如下图所示(常规配置 具体所有配置可参考http://kafka.apache.org/documentation/的producer)第二种:我们自...原创 2019-12-02 13:56:31 · 972 阅读 · 0 评论 -
springboot2.x +kafka使用和源码分析二(topic配置)
上一章我们了解到KafkaAutoConfiguration自动初始化依赖Bean,如下图所示若应用中不包含kafkaAdmin对象,KafkaAutoConfiguration为我们应用创建一个,那么kafkaAdmin这个类的作用是什么呢? @Bean @ConditionalOnMissingBean public KafkaAdmin kafkaAdmin() {...原创 2019-11-30 22:36:07 · 1800 阅读 · 0 评论 -
springboot2.x +kafka使用和源码分析一(自动装配)
序言:个人感觉springboot的源码是web应用开源框架中写的最好的,观看它的源码可以学习它的编码风格,代码设计思想,如何做到给予使用者最好的使用体验,隐藏连接各应用组件的实现细节,极大降低类开发者实力的要求。查看springboot对各组件的自动装配实现,可以很详细的了解到spring对于组件核心类的初始化过程,以及核心类的作用以及之间的依赖关系。在使用springboot项目中集成...原创 2019-11-29 17:40:04 · 1516 阅读 · 0 评论 -
springboot2.x+kafka使用和源码分析六(自定义序列化器)
Apache Kafka提供了一个高级API,用于对值及其键进行序列化和反序列化。org.apache.kafka.common.serialization.Serializer<T> 序列化器 org.apache.kafka.common.serialization.Deserializer<T> 反序列化器我们可以使用Producer或Consumer配...原创 2019-11-28 12:46:24 · 629 阅读 · 0 评论 -
springboot 使用RedisTemplate构建分布式锁
话不多说直接上源码:import java.util.Collections;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.script.DefaultRedisScript;/** * 使用redis构建分布式锁(使用lun...原创 2019-11-25 11:16:29 · 360 阅读 · 0 评论 -
springboot自定义Actuator
Spring Boot的Actuator在应用程序中提供众多Web端点,我们可以通过它们了解应用程序允许的状态,也可以通过提供的rest接口可以获取整个依赖于spring体系中bean如何组装在一起,也可以掌握应用程序允许的环境属性消息等如何启用Actuator的端点,只需要在项目中引入Actuator的依赖:在Maven中构建 :<dependency> <...原创 2019-11-25 10:28:44 · 613 阅读 · 0 评论