王伟王胖胖的博客

对技术有点追求而已
私信 关注
王伟王胖胖
码龄11年
  • 188,140
    被访问量
  • 411
    原创文章
  • 10,164
    作者排名
  • 474
    粉丝数量
  • 毕业院校 杭州电子科技大学
  • 于 2010-02-21 加入CSDN
获得成就
  • 获得247次点赞
  • 内容获得352次评论
  • 获得708次收藏
荣誉勋章
兴趣领域
  • #后端
    #Spring#架构#Java#分布式#Redis#Spring Boot
TA的专栏
  • seata
    7篇
  • mybatis-plus
    1篇
  • 消息队列
    1篇
  • Spring 5.x 源码之旅
    87篇
  • 吃透Netty源码系列
    64篇
  • Spring Cloud 2.2.2 源码之旅
    68篇
  • Spring Boot 2.2.6 源码之旅
    56篇
  • 深度学习
    75篇
  • Java并发编程
    9篇
  • Faster R-CNN Keras版源码史上最详细解读系列
    11篇
  • MyBatis 3.5.4源码之旅
    11篇
  • NIO源码系列
    5篇
  • 目标检测
    24篇
  • Unity3D Ml-Agent
    7篇
  • 强化学习
    14篇
  • SSD Keras版源码史上最详细解读系列
    6篇
  • 李宏毅机器学习
    36篇
  • keras实战
    12篇
  • Netty实战系列
    1篇
  • 生成对抗网络GAN
    10篇
  • 计算机视觉
    24篇
  • Unity3D
    1篇
  • 李航 统计学习方法 第二版 浅见
    5篇
  • 机器学习
    33篇
  • 目标
    1篇
  • 考研
  • 梦想
    1篇
  • 语音识别
    1篇
  • 图解深度学习
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

seata源码分析之-AT模式写隔离

seata源码分析之-AT模式写隔离AT模式写隔离AT模式读隔离AT模式写隔离当我们看到上面的图的时候可能不太明白这个具体是怎么做的,所以今天就来源码看下。首先是获取全局锁,那这个到底是什么锁呢,我们来看TA模式的ConnectionProxy的processGlobalTransactionCommit方法:注册的时候会去注册锁,其实有点像分布式锁,谁先注册了谁就占着了,然后其他的就要重试:其实这把锁哪里来的,就是在准备回滚日志的时候生成的,表名_主键ID:如果发现注册有锁冲突,说明已
原创
38阅读
1评论
0点赞
发布博客于 12 天前

seata源码分析之-资源管理器详解2

seata源码分析之-资源管理器详解2事务消息处理器回滚消息处理器ResourceManagerXATCCResourceManager事务消息处理器上篇说了资源管理器有4种,那这些事务管理器是什么时候调用的,又是被什么事件驱动的呢,这次我们来看看事务消息处理器,也就是处理TC发来的事务消息,同样还是在RM初始化的时候创建的。貌似一样的套路:一样的SPI机制:对应的也是4种处理器,如果有TC的消息来了,就会调用DefaultRMHandler的handle去找出是哪种处理器,进行处理。
原创
12阅读
0评论
0点赞
发布博客于 13 天前

seata源码分析之-资源管理器详解1

seata源码分析之-资源管理器详解一资源管理器RMRMClient初始化资源管理器加载AT模式的DataSourceManagerXA模式的ResourceManagerXATCC模式的TCCResourceManagerSAGA模式的SagaResourceManager资源管理器RM前面将的大致的AT流程,但是一些细节的东西没讲,现在来说下比较重要的资源管理器,比如我们的AT,TCC,XA,SAGA模式下资源管理器具体是什么时候创建的,创建的是什么,又是怎么运作的。RMClient初始化资源管理
原创
10阅读
0评论
0点赞
发布博客于 13 天前

seata源码分析之-AT模式客户端分析4

seata源码分析之-AT模式客户端分析4ConnectionProxy之processGlobalTransactionCommitConnectionProxy之register注册分支事务ConnectionProxy之recognizeLockKeyConflictException处理锁冲突UndoLogManager之flushUndoLogs写入回滚日志ConnectionProxy之report报告事务状态ConnectionProxy之rollback异常回滚TC通知提交成功或者回滚Dat
原创
11阅读
0评论
0点赞
发布博客于 13 天前

seata源码分析之-AT模式客户端分析3

seata源码分析之-AT模式客户端分析3RM之StorageServiceDataSourceProxy数据源代理DataSourceProxy的一些方法处理RPC调用ExecuteTemplate的executeBaseTransactionalExecutor的executeLockRetryPolicy的execute镜像查询与回滚日志插入RM之StorageService前面我们分析了springcloud的例子中的TM的BusinessService的一些原理,接下来我们来找个RM说下,比如
原创
9阅读
0评论
0点赞
发布博客于 13 天前

seata源码分析之-AT模式客户端分析2

seata源码分析之-AT模式客户端分析2GlobalTransactionScanner的初始化initClient初始化TM和RM的客户端TmNettyRemotingClient初始化registerProcessor注册处理器init开启定时重连的任务和初始化netty组件TM进行GlobalTransactionalInterceptor进行方法拦截handleGlobalTransaction进行全局事务处理TransactionalTemplate的execute即TM要做的事Transact
原创
9阅读
0评论
0点赞
发布博客于 13 天前

seata源码分析之-AT模式客户端分析1

seata源码分析之-AT模式客户端分析1前言seata在springcloud下的客户端是怎么工作的寻找seata在springboot的自动配置官方的springcloud-eureka-seata例子前言放假了有时间详细的看下seata的相关原理,看官网的那些图和介绍可能并不是很明白相关的组件是怎么工作的,可能只是死记硬背,有什么TC,TM,RM,他们做了哪些工作的,可能对一些细节和为什么这么设计并不是很清楚,所以还是想去了解下,顺便看下大厂的代码和设计思路,最直接的方式就是结合官网的介绍,然后看
原创
12阅读
0评论
0点赞
发布博客于 13 天前

李航《统计学习方法》第二版-第1章 统计学习及监督学习概论1.1-1.2 浅见

李航《统计学习方法》第二版-第一章 统计学习及监督学习概论1.1-1.2 浅见目的第一章 统计学习及监督学习概论1.1 统计学习统计学习是什么,做什么的统计学习的对象统计学习的目的统计学习的方法1.2 统计学习的分类基本分类监督学习输入空间,输出空间,特征空间联合概率分布假设空间无监督学习强化学习按技巧分类贝叶斯学习核方法目的经过一段时间的深度学习,发现好多机器学习的基础不是很好,特别是统计方...
原创
483阅读
0评论
0点赞
发布博客于 2 年前

Mybatis Plus的BaseMapper的方法是如何注入的

Mybatis Plus的BaseMapper的方法是如何注入的Mybatis Plus的BaseMapper的方法Mybatis Plus的初始化方法MybatisPlusAutoConfiguration中的SqlSessionFactoryBaseMapper方法的注入的过程总结Mybatis Plus的BaseMapper的方法我们在用的时候经常就是生产自定义的Mapper继承自BaseMapper,然后我们就可以使用了,但是有没想过BaseMapper里的方法是怎么被注入到mybatis里的,
原创
693阅读
0评论
1点赞
发布博客于 3 月前

kafka原理以及源码相关总结

kafka相关总结Kafka相关一.特点1.应用解耦2.异步处理2.1 串行方式大约30ms。2.2 并行方式大约20ms。3.数据限流4.消息通信二.结构0. 元数据(集群节点信息,分区信息,主题和分区关系等)1.生产者1.1相关重要配置1.1.1 acks确认机制:1.1.2 buffer-memory缓冲区大小1.1.3 batch-size发送批次大小1.1.4 linger.ms设置延迟多久要发送,类似于TCP的nagal算法1.1.5 retries重试次数和retries.backoff.ms
原创
191阅读
0评论
2点赞
发布博客于 4 月前

Netty相关总结

Netty相关总结Netty初始化总结Netty组件总结Netty内存管理总结Netty初始化总结一些初始化的知识点。Netty组件总结一些常用组件,不过还有好多处理器,编解码器没说,这个可以看我的源码。Netty内存管理总结很多细节都没怎么写,还是得看源码,很多结构和流程图我的源码文章都有,有兴趣的可以看看。好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的...
原创
697阅读
3评论
4点赞
发布博客于 9 月前

SpringBoot 2.2.6 相关知识点总结

SpringBoot 2.2.6 相关扩展点和注解总结扩展点注解扩展点一些常用的扩展点。注解一些常用注解,springcloud框架有很多自定义的其实也就是这些组合扩展出来的。先总结这些,后面慢慢补。好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。...
原创
444阅读
1评论
2点赞
发布博客于 9 月前

Spring Cloud 2.2.2 源码之六十九nacos的raft选举原理解析四

Spring Cloud 2.2.2 源码之六十九nacos的raft选举原理解析四raft竞选基本流程集群结点请求同步数据RaftCore的receivedBeat获取信息RaftController的getraft竞选基本流程集群结点请求同步数据前面说了leader发送的心跳过去的时候会带有数据key的信息,其他结点可能会进行数据的同步。RaftCore的receivedBeat获取...
原创
264阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十八nacos的raft选举原理解析三

Spring Cloud 2.2.2 源码之六十八nacos的raft选举原理解析三raft竞选基本流程RaftController的beat处理心跳RaftCore的receivedBeatRaftPeerSet的makeLeaderRaftController的getPeer获取结点信息raft竞选基本流程RaftController的beat处理心跳RaftCore的receive...
原创
229阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十七nacos的raft选举原理解析二

Spring Cloud 2.2.2 源码之六十七nacos的raft选举原理解析二raft竞选基本流程RaftCore的HeartBeat心跳RaftCore的HeartBeat心跳RaftPeerSet的update更新结点信息raft竞选基本流程RaftCore的HeartBeat心跳我们可以看到,心跳也有超时时间,到了后重置然后发心跳。@Override publ...
原创
244阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十六nacos的raft选举原理解析一

Spring Cloud 2.2.2 源码之六十六nacos的raft选举原理解析一raft竞选基本流程MasterElectionsendVote拉票其他结点处理拉票请求RaftController的voteRaftCore的receivedVote接受投票后决定leaderRaftCore的decideLeaderraft竞选基本流程MasterElection前面说了选举测初始化,现...
原创
263阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十五nacos的raft选举初始化流程

Spring Cloud 2.2.2 源码之六十五nacos的raft选举原理nacos数据一致性服务执行流程nacos数据一致性服务执行流程
原创
297阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十四nacos数据一致性原理之永久结点数据同步二

Spring Cloud 2.2.2 源码之六十四nacos数据一致性原理之永久结点数据同步二nacos数据一致性服务执行流程RaftController的onPublish过半响应RaftConsistencyServiceImpl的onPut一些问题nacos数据一致性服务执行流程RaftController的onPublish过半响应最终响应还是调用了RaftConsistencyS...
原创
226阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十三nacos数据一致性原理之永久结点数据同步一

Spring Cloud 2.2.2 源码之六十三nacos数据一致性原理之永久结点数据同步一nacos数据一致性服务执行流程RaftConsistencyServiceImpl的put永久数据同步RaftCore的signalPublishRaftCore的isLeaderRaftPeerSet的isLeaderRaftCore的onPublishService的onChangenacos数据...
原创
513阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十二nacos数据一致性原理之临时结点数据同步二

Spring Cloud 2.2.2 源码之六十二nacos数据一致性原理之临时结点数据同步二nacos数据一致性服务执行流程DataStore的batchGetNamingProxy的syncData数据同步DistroController的onSyncDatumnacos数据一致性服务执行流程DataStore的batchGet上篇说到要进行数据同步了,我们先来看下任务key=com....
原创
272阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六十nacos数据一致性原理之临时结点数据同步一

Spring Cloud 2.2.2 源码之五十七nacos服务端处理注册实例请求五TaskScheduler的runDataSyncer的submitDataStore的batchGetNamingProxy的syncData数据同步TaskScheduler的run其实就是从队列中获取要更新的服务key,然后判断数量是不是超过1000或者超时2秒了,是的话就创建SyncTask同步任务并提...
原创
655阅读
6评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十九nacos服务端处理查询实例列表

Spring Cloud 2.2.2 源码之五十九nacos服务端处理查询实例列表服务端处理查询实例列表InstanceController的list查询实例列表doSrvIPXT返回实例服务端处理查询实例列表我们看查询服务实例列表在哪里,在ZoneAwareLoadBalancer的updateListOfServers更新服务中。这里会传UDP端口,就是前篇说的服务器推送服务实例改变的...
原创
523阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十八nacos服务端处理实例心跳二

Spring Cloud 2.2.2 源码之五十八nacos服务端处理实例心跳二ClientBeatProcessor的run处理临时实例心跳PushService的serviceChanged服务有改变UDP客户端UDP调度任务udpPushRetransmitterReceiverClientBeatProcessor的run处理临时实例心跳这里就体现出RsInfo的用途啦,其实就是保存下...
原创
536阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十七nacos服务端处理实例心跳一

Spring Cloud 2.2.2 源码之五十七nacos服务端处理实例心跳回顾客户端实例心跳服务端处理心跳InstanceController的beatService的processClientBeat处理一次心跳回顾客户端实例心跳在服务实例注册之前,如果是临时的服务实例,会先开启心跳任务,不过心跳任务5秒后会运行,第一次心跳的时候会带上心跳内容,也就是服务实例的信息,避免实例不存在又要重...
原创
825阅读
1评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十六nacos服务端处理注册实例请求四

Spring Cloud 2.2.2 源码之五十六nacos服务端处理注册实例请求四Service模型大致结构DistroConsistencyServiceImpl的put临时实例集合一致性服务onPut添加临时实例集合TaskDispatcher的addTaskTaskScheduler的addTaskTaskScheduler的runDataSyncer的submitService模型大致...
原创
279阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十五nacos服务端处理注册实例请求三

Spring Cloud 2.2.2 源码之五十五nacos服务端处理注册实例请求三Service模型大致结构ServiceManager的addIpAddressesServiceManager的addIpAddressesupdateIpAddresses更新服务实例Service的allIPs获取集群中的实例集合ServiceManager的setValid更新老的实例集合Cluster的i...
原创
190阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十四nacos服务端处理注册实例请求二

Spring Cloud 2.2.2 源码之五十四nacos服务端处理注册实例请求二客户端注册实例流程ServiceManager的putServiceAndInitServiceManager的putServiceService的init初始化和开启心跳检测HealthCheckReactor的scheduleCheckDelegateConsistencyServiceImpl的listenD...
原创
307阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十三nacos服务端处理注册实例请求一

Spring Cloud 2.2.2 源码之五十三nacos服务端处理注册实例请求一客户端注册实例流程注册实例客户端注册服务端处理服务端处理createEmptyServiceServiceManager的getService客户端注册实例流程注册实例官网的描述:客户端注册主要是在这个地方。服务端处理InstanceController的register方法:服务端处理...
原创
358阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十二nacos服务端处理监听配置请求二

Spring Cloud 2.2.2 源码之五十二nacos服务端处理监听配置请求二ClientLongPolling的run监听后台配置修改DataChangeTask的runClientLongPolling的run然后你会发现,又是一个调度任务,延迟时间29.5秒,就是最少挂起时间。然后会将对象放进监听集合里。当挂起时间过后,开始处理,因为不是固定轮询的,所以直接响应:把轮询任务...
原创
350阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十一nacos服务端处理监听配置请求一

Spring Cloud 2.2.2 源码之五十一nacos服务端处理监听配置请求一监听配置客户端的LongPollingRunnable服务端的ConfigController的listenerConfigServletInner的doPollingConfigLongPollingService的isSupportLongPolling是否支持长轮询LongPollingService的add...
原创
335阅读
1评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五十nacos服务端处理获取配置请求

Spring Cloud 2.2.2 源码之五十nacos服务端处理获取配置请求nacos服务端获取配置ConfigController的getConfigRequestUtil的getRemoteIp尽可能获取真实IPConfigServletInner的doGetConfignacos服务端其实nacos大致功能就两个,一个是配置中心,一个是命名服务,我们先看配置中心是如何提供配置请求服务...
原创
410阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十九nacos客户端触发服务刷新原理三

Spring Cloud 2.2.2 源码之四十八nacos客户端触发服务刷新原理三服务获取和刷新的流程图NacosNamingService的selectInstancesHostReactor的getServiceInfoHostReactor的scheduleUpdateIfAbsentPushReceiver接受推送服务获取和刷新的流程图NacosNamingService的sele...
原创
414阅读
1评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十八nacos客户端触发服务刷新原理二

Spring Cloud 2.2.2 源码之四十七nacos客户端触发服务刷新原理二服务获取和刷新的流程图NacosServerList实例化ZoneAwareLoadBalancer实例化NacosServerList的getUpdatedListOfServers服务获取和刷新的流程图NacosServerList实例化继续上篇,接下来就是实例化到这里了:config就是上篇最后实...
原创
347阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十七nacos客户端触发服务刷新原理一

Spring Cloud 2.2.2 源码之四十六nacos客户端触发服务刷新原理一服务获取和刷新的流程图什么时候获取服务拦截器拦截RestTemplate服务获取和刷新的流程图什么时候获取服务其实当nacos客户端起来之后,并不会去请求服务信息,只是会去做服务注册,配置获取等,那什么时候会获取服务呢,就是第一次请求来的时候,也就是说是懒加载的思想,下面看我慢慢分析。拦截器拦截RestT...
原创
369阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十六nacos客户端服务发现任务解析三

Spring Cloud 2.2.2 源码之四十六nacos客户端服务发现原理四服务发现任务图NamingProxy的refreshSrvIfNeed刷新服务中心地址服务发现任务图NamingProxy的refreshSrvIfNeed刷新服务中心地址这个主要是刷新服务器地址用的,也就是注册中心的地址,但是是根据域名去请求的,一般不设置域名这里基本都是返回了。 private void...
原创
570阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十五nacos客户端服务发现任务解析二

Spring Cloud 2.2.2 源码之四十五nacos客户端服务发现原理三服务发现任务图SwitchRefresher故障转移刷新FailoverReactor初始化备份DiskFileWriterPushReceiver服务发现任务图SwitchRefresher故障转移刷新查看缓存目录下的/failover/00-00---000-VIPSRV_FAILOVER_SWITCH-0...
原创
2498阅读
1评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十四nacos客户端服务发现任务解析一

Spring Cloud 2.2.2 源码之四十四nacos客户端服务发现原理二NacosWatchBeatTaskNacosWatch这个就不多说了,SmartLifecycle这个已经很熟悉了吧,调用start,里面开启任务,30秒一次,发送HeartbeatEvent,不过貌似现在没有监听器监听。BeatTask服务注册默认是临时结点,所以要有心跳。 @Ov...
原创
1174阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十三nacos客户端服务发现相关配置类

Spring Cloud 2.2.2 源码之三十二nacos客户端获取配置原理七NacosDiscoveryAutoConfigurationNacosDiscoveryPropertiesNacosServiceDiscoveryNacosDiscoveryClientConfigurationNacosDiscoveryClientNacosWatchNacosDiscoveryAutoCo...
原创
305阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十二nacos客户端服务注册原理

Spring Cloud 2.2.2 源码之四十二nacos客户端服务注册原理大致服务注册流程服务注册相关配置类介绍NacosServiceRegistryAutoConfigurationNacosServiceRegistryNacosRegistrationNacosAutoServiceRegistration注册原理NacosServiceRegistry的registerNacosNa...
原创
199阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十一nacos配置动态刷新原理三

Spring Cloud 2.2.2 源码之四十一nacos配置动态刷新原理三RefreshScope注解类实例化基本流程GenericScope的destroyBeanLifecycleWrapper的destroyRefreshScope获取新对象SimpleBeanTargetSource的getTargetLockedScopedProxyFactoryBean的invokeRefres...
原创
297阅读
10评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四十nacos配置动态刷新原理二

Spring Cloud 2.2.2 源码之四十nacos配置动态刷新原理二RefreshScope注解类实例化基本流程ConfigurationPropertiesRebinder配置属性类重新绑定ConfigurationPropertiesRebinder的rebind重新绑定rebind绑定RefreshScope的refreshAllRefreshScope注解类实例化基本流程Co...
原创
330阅读
0评论
2点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十九nacos配置动态刷新原理一

Spring Cloud 2.2.2 源码之三十九nacos配置动态刷新原理一RefreshScope注解类实例化基本流程nacos如何通过RefreshScope注解进行属性刷新RefreshEventListener的handleContextRefresher的refreshrefreshEnvironmentaddConfigFilesToEnvironmentchanges获取新老之间有...
原创
1306阅读
0评论
4点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十八@RefreshScope详解四

Spring Cloud 2.2.2 源码之三十八@RefreshScope详解四容器的5个scopeRefreshScope的对象获取RefreshScope的getBeanLifecycleWrapper的getBean有请求来的时候LockedScopedProxyFactoryBean的invoke容器的5个scopeRefreshScope的对象获取继续上篇,创建对象,不是单例,...
原创
250阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十七@RefreshScope详解三

Spring Cloud 2.2.2 源码之三十七@RefreshScope详解三ScopedProxyFactoryBean的setBeanFactoryLockedScopedProxyFactoryBean的setBeanFactoryRefreshScope的eagerlyInitializeScopedProxyFactoryBean的setBeanFactory下面就开始创建这个...
原创
248阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十六@RefreshScope详解二

Spring Cloud 2.2.2 源码之三十六@RefreshScope详解二RefreshScopeGenericScope的postProcessBeanDefinitionRegistryRefreshScope的注册AbstractBeanFactory的registerScope注册scope处理器LockedScopedProxyFactoryBean初始化的setBeanFact...
原创
233阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十五@RefreshScope详解一

Spring Cloud 2.2.2 源码之三十五@RefreshScope详解一@RefreshScope作用@Scope回顾这个的作用ClassPathBeanDefinitionScanner的doScanAnnotationConfigUtils的applyScopedProxyModeScopedProxyUtils的createScopedProxy@RefreshScope作用主...
原创
381阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十四nacos客户端LongPollingRunnable配置更新二

Spring Cloud 2.2.2 源码之三十四nacos客户端LongPollingRunnable配置更新二获取更新的配置文件通知监听器CacheData的checkListenerMd5safeNotifyListener通知监听器处理获取更新的配置文件前面的checkUpdateDataIds只是获取有更新的配置文件名,不是配置文件内容,所以后面还要去判断哪些有更新,再去获取内容。这...
原创
343阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十三nacos客户端LongPollingRunnable配置更新一

Spring Cloud 2.2.2 源码之三十三nacos客户端LongPollingRunnable配置更新一ClientWorker的checkConfigInfoLongPollingRunnable的runcheckLocalConfig检查本地配置checkUpdateDataIds获取有改变的配置文件checkUpdateDataIds服务器获取ClientWorker的check...
原创
871阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十二nacos客户端NacosContextRefresher

Spring Cloud 2.2.2 源码之三十二nacos客户端NacosContextRefresher自动同步配置的实现registerNacosListenersForApplications给所有配置设置监听器registerNacosListener注册监听器到配置服务NacosConfigService的addListener配置服务添加监听器ClientWorker的addTena...
原创
293阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十一nacos客户端获取配置原理六

Spring Cloud 2.2.2 源码之三十一nacos客户端获取配置原理六NacosConfigAutoConfigurationNacosRefreshHistoryNacosRefreshProperties(废弃了)NacosContextRefresherNacosConfigEndpointAutoConfigurationNacosConfigEndpointNacosConfi...
原创
141阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三十nacos客户端获取配置原理五

Spring Cloud 2.2.2 源码之三十nacos客户端获取配置原理五PropertySourceBootstrapConfiguration的initialize尾巴NacosConfigAutoConfigurationNacosConfigProperties从老上下文中获取其他重新创建PropertySourceBootstrapConfiguration的initialize尾...
原创
176阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四

Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四MetricsHttpAgent的httpGetServerHttpAgent的httpGetHttpSimpleClient的httpGet状态码处理结果处理解析MetricsHttpAgent的httpGet封装了一层计时,内部还是HttpAgent去请求。 @Override public H...
原创
527阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十八nacos客户端获取配置原理三

Spring Cloud 2.2.2 源码之二十八nacos客户端获取配置原理三NacosPropertySourceLocator的loadNacosDataIfPresentNacosPropertySourceLocator的loadNacosPropertySourceNacosPropertySourceBuilder的buildloadNacosDataNacosConfigServi...
原创
245阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十七nacos客户端获取配置原理二

Spring Cloud 2.2.2 源码之二十六nacos客户端动态配置PropertySourceBootstrapConfigurationinitialize初始化一NacosPropertySourceLocator的locatePropertySourceBootstrapConfiguration自动配置里有这个类,这个就是来进行远程配置处理的。他也是个初始化器,因为在准备好...
原创
469阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十六nacos客户端获取配置原理一

Spring Cloud 2.2.2 源码之二十六nacos客户端获取配置原理一NacosConfigService大致的结构NacosConfigManagercreateConfigService创建配置服务NacosConfigProperties的assembleConfigServiceProperties一些初始化配置NacosFactory的createConfigServiceNa...
原创
522阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十四BootstrapApplicationListener执行原理一

Spring Cloud 2.2.2 源码之二十四BootstrapApplicationListener执行原理一BootstrapApplicationListeneronApplicationEventbootstrapServiceContext创建新上下文一bootstrapServiceContext创建新上下文二bootstrapServiceContext创建新上下文三Boots...
原创
442阅读
1评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十五BootstrapApplicationListener执行原理二

Spring Cloud 2.2.2 源码之二十五BootstrapApplicationListener执行原理二基本处理流程BootstrapImportSelectorConfigurationBootstrapImportSelector调用栈加载bootstrap配置文件NacosConfigBootstrapConfigurationmergeDefaultPropertiesappl...
原创
1082阅读
0评论
1点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅五十三ConfigFileApplicationListener配置文件加载原理四

Spring Boot 2.2.6 源码之旅五十三ConfigFileApplicationListener配置文件加载原理四基本流程图加载环境配置addLoadedPropertySources添加到环境属性源applyActiveProfiles添加激活配置多激活环境基本流程图加载环境配置如果有环境配置会进行处理,然后会加到profiles里,进行环境配置的加载。其实就是这个循环,只要...
原创
107阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅五十二ConfigFileApplicationListener配置文件加载原理三

Spring Boot 2.2.6 源码之旅五十二ConfigFileApplicationListener配置文件加载原理三application配置文件加载application配置文件加载loadForFileExtensionapplication配置文件加载我们考虑简单的application配置文件的加载,其实这个时候只是个名字,后面会进行前后缀的拼接。application配...
原创
123阅读
0评论
1点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅五十一ConfigFileApplicationListener配置文件加载原理二

Spring Boot 2.2.6 源码之旅五十一ConfigFileApplicationListener配置文件加载原理二Loader的load加载配置文件FilteredPropertySource的applyinitializeProfiles遍历profiles队列isDefaultProfileload加载文件getSearchLocations获取搜索路径getSearchNames...
原创
188阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅五十ConfigFileApplicationListener配置文件加载原理一

Spring Boot 2.2.6 源码之旅五十ConfigFileApplicationListener配置文件加载原理一配置文件加载原理ConfigFileApplicationListener何时加载配置文件ConfigFileApplicationListener的onApplicationEnvironmentPreparedEventloadPostProcessorsEnvironm...
原创
195阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十九@ConfigurationProperties原理二

Spring Boot 2.2.6 源码之旅四十九@ConfigurationProperties原理二简单流程ConfigurationPropertiesBindingPostProcessor的postProcessBeforeInitialization初始化之前处理ConfigurationPropertiesBean的getConfigurationPropertiesBean的get...
原创
156阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十八@ConfigurationProperties原理一

Spring Boot 2.2.6 源码之旅四十八@ConfigurationProperties原理一简单流程@ConfigurationProperties例子@EnableConfigurationPropertiesEnableConfigurationPropertiesRegistrar的registerInfrastructureBeans注册基础beanConfigurationP...
原创
224阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十七@Value原理详解

Spring Boot 2.2.6 源码之旅四十七@Value原理详解@ValueQualifierAnnotationAutowireCandidateResolver的getSuggestedValue@Value这个应该基本都用过,直接在属性上用的多,其实方法上也可以用,这个相对简单,先说这个,来个例子,我在name属性上用了,然后在applyName方法上也用了,先不管那到底结果是怎么...
原创
307阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十三Feign执行原理二

Spring Cloud 2.2.2 源码之二十三Feign执行原理二创建负载均衡客户端executeWithLoadBalancer执行FeignLoadBalancer的execute创建负载均衡客户端最后一步了,创建客户端,然后负载均衡,去执行。先创建服务的客户端:CachingSpringLoadBalancerFactory工厂有个缓存,先从缓存中拿。没有的话就用Spring...
原创
136阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十二Feign执行原理一

Spring Cloud 2.2.2 源码之二十二Feign执行原理一执行原理FeignInvocationHandler的invokeSynchronousMethodHandler的invokeexecuteAndDecodeLoadBalancerFeignClient的execute执行原理首先是springmvc分发调用到我们这个方法,因为这个是代理对象,于是执行他的invoke方法...
原创
150阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十一Feign初始化二

Spring Cloud 2.2.2 源码之二十一Feign初始化二大致流程图FeignClientFactoryBean的getObjectfeignloadBalance获取代理对象HystrixTargeter的targetFeign.Builder的targetReflectiveFeign的newInstance大致流程图FeignClientFactoryBean的getObje...
原创
161阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二十Feign初始化一

Spring Cloud 2.2.2 源码之二十Feign初始化一大致流程图openfeign@EnableFeignClients作用FeignClientsRegistrarregisterDefaultConfigurationregisterFeignClientsregisterFeignClient大致流程图openfeign本篇开始看openfeign的初始化原理,搞明白为什...
原创
244阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十九Ribbon执行原理五

Spring Cloud 2.2.2 源码之十九Ribbon执行原理五基本流程图准备执行executeInterceptingRequestExecution的execute基本流程图准备执行服务器选完之后创建一个RibbonServer,封装一些信息,执行。execute创建RibbonLoadBalancerContext上下文和状态记录器RibbonStatsRecorder做...
原创
112阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十八Ribbon执行原理四

Spring Cloud 2.2.2 源码之十八Ribbon执行原理四基本流程图RibbonLoadBalancerClient的getServer选取服务器PredicateBasedRule的chooseAbstractServerPredicate的chooseRoundRobinAfterFiltering进行过滤器过滤AvailabilityPredicate可用性过滤器ZoneAvoi...
原创
179阅读
1评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十四Ribbon初始化一

Spring Cloud 2.2.2 源码之十四Ribbon初始化一LoadBalancerAutoConfiguration注入RestTemplate实例集合LoadBalancerInterceptor拦截器RestTemplateCustomizer定制化器SmartInitializingSingleton触发定制化RibbonAutoConfigurationLoadBalanced注...
原创
144阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十七Ribbon执行原理三

Spring Cloud 2.2.2 源码之十七Ribbon执行原理三DynamicServerListLoadBalancer的restOfInitenableAndInitLearnNewServersFeature开启服务列表更新的定时任务updateListOfServers服务列表更新DiscoveryEnabledNIWSServerList的obtainServersViaDisco...
原创
143阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十六Ribbon执行原理二

Spring Cloud 2.2.2 源码之十六Ribbon执行原理二RibbonClientConfiguration的实例配置信息负载均衡的策略服务列表更新器负载均衡器EurekaRibbonClientConfiguration的实例真正的Ping实例提取服务列表ZoneAwareLoadBalancer的创建BaseLoadBalancer的initWithConfig设置规则和Pings...
原创
149阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十五Ribbon执行原理一

Spring Cloud 2.2.2 源码之十五Ribbon执行原理一请求流程拦截处理LoadBalancerRequestFactory的createRequestRibbonLoadBalancerClient的executegetLoadBalancer根据服务名获取ILoadBalancer类型的负载均衡器SpringClientFactory的getInstanceNamedContex...
原创
253阅读
0评论
0点赞
发布博客于 10 月前

Spring 5.x 源码之旅八十五Qualifier注解三

Spring 5.x 源码之旅八十五Qualifier注解三checkQualifier检查要候选bean定义是否有这个注解checkQualifiers部分2checkQualifier检查要候选bean定义是否有这个注解这个方法其实就是检查候选的bean定义里有没有相关Qualifier注解,先检查下bean定义有没有添加type类型的全限定类型和短类名的AutowireCandidate...
原创
185阅读
0评论
2点赞
发布博客于 10 月前

Spring 5.x 源码之旅八十四Qualifier注解二

Spring 5.x 源码之旅八十四Qualifier注解二@Qualifier条件限制原理属性注入流程friend1判断是否符合获取属性的注解checkQualifiers部分1isQualifier是否是Qualifier类型的注解@Qualifier条件限制原理假设我们还是上篇的例子,我们现在要求注入女的朋友:实际配置是有两个朋友:属性注入流程我们看看底层怎么做的,首先是属性注...
原创
226阅读
0评论
0点赞
发布博客于 10 月前

Spring 5.x 源码之旅八十三Qualifier注解一

Spring 5.x 源码之旅八十三Qualifier注解一@Qualifier注解例子-程序员选朋友Girl注解Boy注解Friend朋友Programmer程序员配置类测试类全女的/全男的男女都要@Qualifier注解说说Qualifier注解,这个注解可以用在注解上,是@Inherited注解的,可被继承的,Target里有ElementType.ANNOTATION_TYPE,这个可...
原创
235阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十三Eureka服务处理获取服务请求二

Spring Cloud 2.2.2 源码之十三Eureka服务处理获取服务请求二大致流程图读缓存与读写缓存同步读写缓存与注册表同步集群结点同步大致流程图读缓存与读写缓存同步ResponseCacheImpl初始化的时候会开启一个定时任务,更新读缓存,默认每30秒一次:可以看到他会遍历所有读缓存,然后和读写缓存做对比,不同的话就把读写缓存的数据覆盖到读缓存中。这样就做了同步,以读写缓存...
原创
122阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十二Eureka服务处理获取服务请求一

Spring Cloud 2.2.2 源码之十二Eureka服务处理获取服务请求一大致流程图获取全量服务信息Key缓存的对象ResponseCacheImpl的getGZIPgetValue获取值readWriteCacheMap不存在的处理方式generatePayloadregistry.getApplications()做了什么registry和Applications的结构大致如图大致流...
原创
147阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十一Eureka服务处理剔除

Spring Cloud 2.2.2 源码之十一Eureka服务处理剔除剔除任务AbstractInstanceRegistry的evict进行服务下线自我保护机制如何进行页面提示剔除任务这个剔除的任务在初始化的时候就开定时器运行啦。主要是AbstractInstanceRegistry的evict方法。AbstractInstanceRegistry的evict首先遍历所有的实例,...
原创
165阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之十Eureka服务端处理续约

Spring Cloud 2.2.2 源码之十Eureka服务端处理续约大致流程图服务端处理续约InstanceResource的renewPeerAwareInstanceRegistryImpl的renewAbstractInstanceRegistry的renew续约同步大致流程图服务端处理续约主要是InstanceResource的renewLease方法处理客户端来的续约请求。...
原创
123阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之九Eureka服务端处理注册服务

Spring Cloud 2.2.2 源码之九Eureka服务端获注册服务大致流程图服务端接受服务注册PeerAwareInstanceRegistryImpl的registerAbstractInstanceRegistry的registerinvalidateCache失效缓存PeerAwareInstanceRegistryImpl的replicateToPeers大致流程图服务端接受...
原创
158阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之八Eureka客户端获取服务二

Spring Cloud 2.2.2 源码之八Eureka客户端获取服务二获取大致流程updateDelta更新增量getReconcileHashCode获取数据一致性的AppsHashCodeApplications的populateInstanceCountMap获取状态个数Applications的getReconcileHashCode拼接AppsHashCodereconcileAnd...
原创
158阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之七Eureka客户端获取服务一

Spring Cloud 2.2.2 源码之七Eureka客户端获取服务一客户端获取服务DiscoveryClient的refreshRegistry刷新注册表fetchRegistrygetAndStoreFullRegistry全量获取getAndUpdateDelta增量获取客户端获取服务前面讲了服务注册,续约,现在还有个获取服务,也是初始化的时候开启的调度任务CacheRefreshT...
原创
167阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之六Eureka客户端服务续约

Spring Cloud 2.2.2 源码之六Eureka客户端服务续约服务注册和续约的大致流程续约的大致流程服务注册和续约的大致流程续约的大致流程主要是初始化调度的HeartbeatThread任务,也是30秒一次,循环调度。其实里面就是renew,然后更新成功的心跳时间。内部还是调用jersey的发送心跳,把实例信息传过去,如果返回值是404的话就进行一次注册:内部的:...
原创
127阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之五Eureka客户端注册服务

Spring Cloud 2.2.2 源码之五Eureka客户端服务注册服务注册和续约的大致流程InstanceInfoReplicator的runDiscoveryClient的refreshInstanceInfoApplicationInfoManager的setInstanceStatusInstanceInfo的setStatusDiscoveryClient的状态改变事件监听Insta...
原创
189阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之四Eureka客户端初始化二

Spring Cloud 2.2.2 源码之四Eureka客户端初始化二AutoServiceRegistrationConfiguration自动注册服务EurekaAutoServiceRegistrationEurekaAutoServiceRegistration的startAutoServiceRegistrationConfiguration自动注册服务上篇说了客户端的服务器获取,...
原创
249阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之三Eureka客户端初始化一

Spring Cloud 2.2.2 源码之三Eureka客户端初始化一客户端初始化EnableDiscoveryClientImportSelectorEurekaDiscoveryClientConfigurationDiscoveryClient的构造方法服务获取任务服务续约和注册InstanceInfoReplicator的start客户端初始化客户端包括服务提供这和服务消费者,其实是...
原创
183阅读
0评论
0点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之二Eureka注册中心初始化二

Spring Cloud 2.2.2 源码之二Eureka注册中心初始化二初始化基本流程图EurekaServerInitializerConfiguration的startEurekaServerBootstrap的contextInitializedEurekaServerBootstrap的initEurekaServerContextPeerAwareInstanceRegistryImp...
原创
197阅读
0评论
1点赞
发布博客于 10 月前

Spring Cloud 2.2.2 源码之一Eureka注册中心初始化一

Spring Cloud 2.2.2 源码之一Eureka注册中心初始化一前言初始化基本流程图EurekaServer注册中心EnableEurekaServer注解EurekaServerAutoConfigurationEurekaServerInitializerConfigurationEurekaServerContextRefreshablePeerEurekaNodes的startP...
原创
350阅读
0评论
1点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十六SpringMVC源码细节之异常处理四

Spring Boot 2.2.6 源码之旅四十六SpringMVC源码细节之异常处理四自定义全局异常处理原理自定义全局异常处理首先创建一个异常解析器,实现HandlerExceptionResolver接口即可,这里异常视图是error1。视图文件error1.html:定义一个配置类,实现WebMvcConfigurer接口,覆盖configureHandlerExceptionR...
原创
85阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理三

Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理三自定义页面自定义异常处理方法自定义页面我们自定义一个错误页面吧,比如我想用Thymeleaf来渲染,那得导入这个包,然后我们知道错误错误视图名字叫做error,所以得有这样一个页面,创建一个error.html放在resources/templates/下:内容就是:这些属性哪里来的,debug里看...
原创
65阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理二

Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理二继续抛异常继续抛异常继续上篇的,异常没法被异常解析器处理,继续抛出:拦截器处理完后继续抛出:FrameworkServlet封装成嵌套的NestedServletException继续抛:不过下面会打印信息:内部会打印:一路抛到org.apache.catalina.core.Stand...
原创
85阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十四SpringMVC源码细节之异常处理一

Spring Boot 2.2.6 源码之旅四十四SpringMVC源码细节之异常处理一通常的异常处理是否能解析异常ExceptionHandlerExceptionResolver的shouldApplyTodoResolveHandlerMethodException处理ResponseStatusExceptionResolver的处理DefaultHandlerExceptionResol...
原创
94阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十三SpringMVC源码细节之BeanNameUrlHandlerMapping处理器

Spring Boot 2.2.6 源码之旅四十三SpringMVC源码细节之BeanNameUrlHandlerMapping处理器BeanNameUrlHandlerMapping是什么BeanNameUrlHandlerMapping初始化AbstractDetectingUrlHandlerMapping的detectHandlersBeanNameUrlHandlerMapping的de...
原创
82阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十二SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器二

Spring Boot 2.2.6 源码之旅四十二SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器二获取资源解析资源资源是否可读AbstractFileResolvingResource的isReadable写出资源获取资源@Nullable protected Resource getResource(HttpServletRequest reque...
原创
120阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十一SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器一

Spring Boot 2.2.6 源码之旅四十一SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器一静态资源如何访问EnableWebMvcConfiguration的resourceHandlerMappingResourceHandlerRegistry的resourceHandlerMapping实验静态资源如何访问可以直接访问静态资源,因为有Si...
原创
201阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十SpringMVC源码细节之深入数据绑定三

Spring Boot 2.2.6 源码之旅四十一SpringMVC源码细节之深入数据绑定三验证请求参数跟类方法匹配结论绑定applyPropertyValues验证请求参数跟类方法匹配我把Dog类方法的一些属性名改了:继续按方法的名字去掉前缀发送:结果可以:那我把方法名字改下,后面都加1:结果这两个参数没绑定:结论参数绑定跟方法的匹配,而且需要有set方法。比如setB...
原创
111阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅四十SpringMVC源码细节之深入数据绑定二

Spring Boot 2.2.6 源码之旅四十SpringMVC源码细节之深入数据绑定二bindRequestParameters绑定请求参数bindRequestParameters绑定请求参数doBind准备绑定checkFieldDefaults先进行属性前缀删除getPropertyAccessor获取属性访问器getInternalBindingResult获取绑定结果getPrope...
原创
128阅读
0评论
0点赞
发布博客于 10 月前

Spring Boot 2.2.6 源码之旅三十九SpringMVC源码细节之深入数据绑定一

Spring Boot 2.2.6 源码之旅三十九SpringMVC源码细节之深入数据绑定一数据绑定进行数据绑定创建和初始化WebDataBinder数据绑定前面说了模型方法调用,里面涉及数据转换和数据绑定,但是这里我准备用一个处理器方法来说数据绑定,比较好理解点。请求信息:绑定方法:进行数据绑定我们就拿第一个参数Dog来说,前面会进行属性的创建,一个空的Dog对象,准备进行绑定...
原创
108阅读
0评论
0点赞
发布博客于 10 月前