石臻臻的杂货铺
优快云博客之星Top5 ,石臻臻《Kafka运维与实战宝典》电子书作者(可找我:szzdzhp001下载)、 Kafka Contributor 、 KnowStreaming PMC、Nacos Contributor、华为云 MVP 。 滴滴Kafka技术专家 、
展开
-
【SpringBoot】配置文件的加载与属性值的绑定
Question在使用SpringBoot过程中你是否会有以下疑问?具体有多少种配置属性源的方式呢?为何使用@Value 注解就能够获取到属性源中的值呢?属性源这么多,如果属性相同的话 那么用哪个值呢?属性源是如何绑定到我们的程序中的呢?Nacos是如果接入到SpringBoot中的呢?为什么@NacosValue可以获取到Nacos中的值并且还是实时刷新的?有没有什么方式可以将SpringBoot中的静态配置全部移动到Nacos中去吗?本篇文章会针对以上问题逐个分析Answer原创 2020-09-27 17:23:57 · 2461 阅读 · 3 评论 -
Spring源码分析(三)Spring是如何把元素解析成BeanDefinition对象的
spring中解析元素最重要的一个对象应该就属于 BeanDefinition了;这个Spring容器中最基本的内部数据结构;它让xml文件中所有的配置有了一个归属的地方;在xml中存在的配置都能在BeanDefinition找到对应的属性;我们今天来看看BeanDefinition是如何被创建的1.BeanDefinition Spring 容器中的内部数据结构,是转换为容器中b...原创 2018-05-07 15:13:46 · 5988 阅读 · 1 评论 -
Spring源码解析(四)Spring是怎么处理BeanDefinition的?
上一篇文章中分析了 BeanDefinition是怎么被解析出来的,在这一篇文章中我们主要看下 解析完了之后所做的事情;一、DefaultBeanDefinitionDocumentReader源码入口processBeanDefinition(Element ele, BeanDefinitionParserDelegate delegate) /** ...原创 2018-05-07 15:24:59 · 5232 阅读 · 0 评论 -
Spring源码分析(十五)Spring中常用注解使用以及源码分析
从Java5.0开始,Java开始支持注解。Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解。相比起之前使用xml来配置Spring框架,使用注解提供了更多的控制Spring框架的方式。现在越来越多的项目也都在使用注解做相关的配置,但Spring的注解非常多,相信很多注解大家都没有使用过。本文就尽量全面地概括介绍一下Spring中常用的注解。 JAVA注解了解一下1...原创 2018-05-20 20:01:35 · 4854 阅读 · 0 评论 -
Spring源码解析(十六)Spring是如何利用注解管理IOC容器的
前面的文章基本上把Spring IOC这一块讲的差不多了, 但是一直都是基于Xml配置来讲解的,所以我想分析一下,Spring中是如何通过注解来管理IOC的;Spring注解配置工作原理源码解析本文先占个坑,这部分内容比较复杂,最近工作比较忙,没有时间分析,但是先占个坑,等下次周末的时候来写;...原创 2018-05-21 10:50:15 · 4640 阅读 · 0 评论 -
Spring源码解析(十一)Spring扩展接口InstantiationAwareBeanPostProcessor解析
TODO…先占一个坑原创 2018-05-15 13:53:56 · 22461 阅读 · 6 评论 -
Spring源码解析(五)Spring 加载bean 依赖注入
在开始这篇文章之前,我们简单回顾一下前面几篇文章的内容至此,我们分析过后,可以简单的归纳一下Spring IOC容器的过程 一、Resource定位过程;这个Resource定位指的的是BeanDefinition的资源定位,他由ResourceLoader通过统一的Resource接口来完成,这个Resource对各种形式的BeanDefinition的使用都提供了统一接口,对于这些Bea...原创 2018-05-08 17:43:07 · 7066 阅读 · 0 评论 -
Spring中PropertyPlaceholderConfigurer替换占位符的问题
最近在做项目的时候,碰到了一个问题,纠结了好久,现在记录一下问题多个Maven项目聚合的时候,每个maven都有自己的配置文件,并且都用了PropertyPlaceholderConfigurer替换占位符,然后启动的时候一直报错,说替换失败;问题症结就是 spirng配置多个PropertyPlaceholderConfigurer的问题原因在spring bean装配时,一...原创 2018-06-24 21:13:35 · 5731 阅读 · 0 评论 -
Spring事务传播问题小案例
工作中碰到的一个小问题 记录下来情况是这样的:有一个发送红包的接口写在 CouponService中,所有的发送红包不管什么场景最终都要调用这个Service中的领取红包接口 并且加上了事务标签,表示被事务管理 @Transactional(rollbackFor=Exception.class) List<CouponVo> checkRepe...原创 2017-10-24 20:32:36 · 2824 阅读 · 4 评论 -
Sring源码解析(一)Spring是怎么读取配置Xml文件的
Spring读取配置文件Document在XmlBeanDefinitionReader.doLoadBeanDefinitions(InputSource inputSource, Resource resource)方法中将Xml文件转换成Document对象; Document doc = doLoadDocument(inputSource, resource); ...原创 2018-04-28 18:51:10 · 4870 阅读 · 0 评论 -
Spring源码解析(十)分析一个Spring循环引用失败的问题
前言:之前我们有分析过Spring是怎么解决循环引用的问题,主要思路就是三级缓存;Spring在加载beanA的时候会先调用默认的空构造函数(在没有指定构造函数实例化的前提下)得到一个空的实例引用对象,这个时候没有设置任何值,但是Spring会用缓存把它给提前暴露出来,让其他依赖beanA的bean可以持有它提前暴露的引用;比如 a 依赖b ,b依赖a,并且他们都是通过默认方法实例化,那么简单...原创 2018-05-13 17:51:16 · 5176 阅读 · 1 评论 -
Spring源码分析(九)lazy-init 在Spring中是怎么控制加载的
一、lazy-init说明:ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化(也就是依赖注入)。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。<...原创 2018-05-13 15:12:56 · 5789 阅读 · 0 评论 -
spring源码分析(一)IOC管理Bean
通过最简单的IOC 容器来跟踪一下 IOC是怎么管理Bean的;Spring IoC容器对Bean定义资源文件的定位,载入、解析和依赖注入的分析原创 2017-10-27 20:43:07 · 2280 阅读 · 1 评论 -
Spring源码分析(二)Spring怎么扩展解析xml接口的
自定义Spring配置https://blog.youkuaiyun.com/bingduanlbd/article/details/38770685BeanDefinitionParserDelegate 在DefaultBeanDefinitionDocumentReader处理Document元素时,将Document文档内元素具体解析工作委托给BeanDefinitionParse...原创 2018-05-02 17:54:28 · 4402 阅读 · 0 评论 -
Spring源码解析(十二)Spring扩展接口SmartInstantiationAwareBeanPostProcessor解析
之前我们分析了 InstantiationAwareBeanPostProcessor、BeanPostProcessor、今天来分析一下SmartInstantiationAwareBeanPostProcessor的用法;SmartInstantiationAwareBeanPostProcessor 继承自 InstantiationAwareBeanPostProcessor; 但...原创 2018-05-17 11:19:41 · 11671 阅读 · 3 评论 -
Spring源码解析(?)Spring使用构造函数实例分析
.原创 2018-05-17 16:27:26 · 594 阅读 · 0 评论 -
Spring源码分析(六)FactoryBean 接口解析
说道FactoryBean,不少人会拿它跟BeanFactory作比较,但是实际上他们没有多大关系;我们简单介绍一下两者一、BeanFactory和FactoryBean区别BeanFactory BeanFactory:这就是一个Factory,是一个IOC容器或者叫对象工厂,它里面存着很多的bean。例如默认的实现方式DefaultListableBeanFactory...原创 2018-05-12 00:32:04 · 5655 阅读 · 5 评论 -
Spring源码解析(十四)Spring调用初始化方法initializeBean
在执行完填充属性的方法populateBean(beanName, mbd, instanceWrapper)之后,就要执行初始化initializeBean方法了; show the code:protected Object initializeBean(final String beanName, final Object bean, RootBeanDefinition mbd) {...原创 2018-05-18 14:19:31 · 9609 阅读 · 1 评论 -
Spring源码分析(七)扩展接口BeanPostProcessors源码分析
BeanPostProcessors在spring中是一个非常重要的扩展接口,它使得我们可以在创建bean实例的前后做一些自己的处理;接下来我们就从源码层面来分析一下它是如何发挥作用的;一、bean的生成过程二、BeanPostProcessors简要说明我们看下BeanPostProcessors的接口public interface BeanPostProc...原创 2018-05-12 12:03:15 · 10604 阅读 · 6 评论 -
Spring源码分析(八)Spring 所有BeanFactoryPostProcessor扩展接口
这一篇分析的不错,我就不分析这个接口了;偷个懒0.0 Spring的BeanFactoryPostProcessor和BeanPostProcessor原创 2018-05-12 15:20:21 · 5104 阅读 · 0 评论