![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HomeHomi脚手架
文章平均质量分 62
Ledison7
jr
展开
-
HopeHomi脚手架(五)远程调用Feign与Sentinel
FeignClientsRegistrar实现了ImportBeanDefinitionRegistrar当启动类自动扫描构造beanDefinition的时候,进行beanDefinition注册。原创 2023-04-24 14:10:47 · 445 阅读 · 0 评论 -
参考nacos配置中心机制,实现前后端业务长轮询功能
参考nacos配置中心,实现前后端长轮询功能原创 2023-04-23 13:50:31 · 423 阅读 · 0 评论 -
【一】springboot启动源码 - invokeBeanFactoryPostProcessors - (下)
这里用来回调BeanDefinitionRegistryPostProcessors实现类的postProcessBeanFactory方法(该方法属于postProcessBeanFactory接口)遍历所有配置类,并通过cglib进行动态代理, enhancer.enhance(configClass, this.beanClassLoader);创建完代理类,将代理类设置为当前配置类的beanDefinition的beanClass。通过配置环境变量,可以保留cglib创建类的class文件。原创 2023-03-24 00:06:23 · 132 阅读 · 0 评论 -
【七】springboot启动源码 - finishBeanFactoryInitialization
第252行,transformedBeanName(name),用于返回真实beanName,如果是beanName以&开头(表示factoryBean),去掉&并返回。preInstantiateSingletons方法,遍历beanDefinitionNames,通过mergedBeanDefinitions来获取每一个RootBeanDefinition,并判断他是否是factorybean,如果不是,调用getBean()方法。进入getMergedLocalBeanDefinition方法。原创 2023-03-23 23:08:26 · 267 阅读 · 0 评论 -
【六】springboot启动源码 - registerListeners
当SpringApplication开始调用run方法,在创建context之后的prepareContext方法中,会将SpringApplication的listeners设置到contextapplicationListeners中。补充说明一下,这里的listeners是基于spring SPI查询到的key为org.springframework.boot.SpringApplicationRunListener的实现类。获取到类名后,通过构造器对这些类进行实例化。原创 2023-03-23 00:29:09 · 155 阅读 · 0 评论 -
【五】springboot启动源码 - onRefresh
它是通过加载org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,装载ServetWeb的自动配置类ServletWebServerFactoryAutoConfiguration。但是在bdMap中,之前通过自动装配,已经添加了org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration。原创 2023-03-22 18:10:40 · 379 阅读 · 0 评论 -
【四】springboot启动源码 - initApplicationEventMulticaster
代码也很简单,注册ApplicationEventMulticaster的默认实现类SimpleApplicationEventMulticaster到IOC容器。原创 2023-03-21 13:44:50 · 69 阅读 · 0 评论 -
【三】springboot启动源码 - initMessageSource
如果IOC容器找不到messageSource的bean,那么会向IOC容器注册一个MessageSource的默认实现类DelegatingMessageSource。这个步骤的代码量比较少。原创 2023-03-21 13:41:15 · 66 阅读 · 0 评论 -
【一】springboot启动源码 - invokeBeanFactoryPostProcessors - (上)
SpringApplication在构造方法时,就会读取META-INF/spring.factories的类,缓存到SpringFactoriesLoader中(这是Spring的SPI),注意这里的缓存不仅仅只有org.springframework.boot.autoconfigure.EnableAutoConfiguration,包括文件中所有key-value。以上只是prepareEnvironment方法的第341行逻辑,341行之后,还会添加一些propertySource,省略过程。原创 2023-03-17 10:12:08 · 429 阅读 · 0 评论 -
【二】springboot启动源码 - registerBeanPostProcessors
通过上一步方法invokeBeanFactoryPostProcessors的理解,对于registerBeanPostProcessors,依然是通过PriorityOrdered、Ordered等来注册BeanPostProcessor到beanPostProcessors,为了后面根据顺序执行原创 2023-03-21 11:27:26 · 75 阅读 · 0 评论 -
HopeHomi脚手架(一)Springboot启动及SPI加载
HopeHomi脚手架原创 2023-03-15 16:53:36 · 77 阅读 · 0 评论 -
HopeHomi脚手架(二)扩展@PropertySource,实现自定义yaml文件加载
PropertySource注解可以读取*.properties文件,但是不能读取yaml文件内容,所以需要扩展。原创 2023-03-15 17:07:26 · 65 阅读 · 0 评论 -
HopeHomi脚手架(三)通过项目启动环境变量,动态加载logback配置文件
有很简单的实现思路,直接在不同环境的application.yaml内容指定,但是这有一个问题,每个微服务都需要写重复配置文件。这里需要设置环境变量,在Spring初始化之前。logback才能正确获取到配置文件。2. 在目录下创建logback配置文件。原创 2023-03-15 17:11:35 · 158 阅读 · 0 评论