Springboot
攀攀攀啦
这个作者很懒,什么都没留下…
展开
-
Spring三级缓存和循环依赖
解决循环依赖一般都是通过属性注入解决循环依赖,简单来说就是先创建对象A,然后在为对象设置属性B,在初始化B时当发生循环依赖时,可以使用未完全初始化的对象A设置到B的属性。所以一个简单的实现就是将创建的半成品A先保存在缓存中,然后B依赖A时先使用缓存中的半成品A进行初始化,B正常初始化并注入到bean容器中。接着A也可以完成初始化也被加入到bean容器中并删除缓存的半成品。如果把bean容器也看做成功初始化bean的缓存,那么上面这个解决循环依赖的方案就是用了二级缓存。AOP对循环依赖的影响Spring原创 2020-09-10 22:32:29 · 203 阅读 · 0 评论 -
自定义注解扫描
扫描自定义注解有多种方式,这里通过实现ImportBeanDefinitionRegistrar类来进行自定义注解的扫描,并将其注入IOC容器中。ImportBeanDefinitionRegistrar类本身只能通过@Import方式进行注入,所以先来实现一个注解方便使用,类似@Enablexxx。/** * 扫描指定包下的client */@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Import(Annotat原创 2020-08-16 13:55:24 · 3218 阅读 · 0 评论 -
Spring注解配置分析(七)——对象实例化和初始化
通过前面的分析已经知道如何将我们配置的一些类加载到容器中,但是到目前位置,只是分析了如何发现这些配置并转化为 BeanDenifition 保存在 BeanFactory 中。下面将会分析,将 BeanDenifition 转化为 bean 对象的流程。AbstractApplicationContext 的 refresh 方法,会调用 finishBeanFactoryInitiali...原创 2019-10-23 18:00:03 · 671 阅读 · 0 评论 -
Spring注解配置分析(六)——@Bean注解分析
通过前面的分析,@Bean 注解的方法会 ConfigurationClassParser 的 parse 方法中添加到对应的配置类的 beanMethods 集合中。 @Bean 注解是用来代替之前 XML 配置 bean 对象,为了让容器管理 bean, 那么还需要将 @Bean 注解方法转化成合适的 BeanDenifition 注入到 BeanFactory 中才算是完成了对 @Bea...原创 2019-10-23 10:27:05 · 231 阅读 · 0 评论 -
Spring注解配置分析(五)——@EnableAutoConfiguration自动配置分析
前面已经分析过如何加载配置类以及相关的注解 @ComponentScan 和 @Import 注解,当然在处理配置类中还有其他注解需要解析,具体可以参考代码。在熟悉了加载配置类的过程之后,下面分析 SpringBoot 自动配置注解 @EnableAutoConfiguration。 使用 SpringBoot 开发的方便的原因就是在于这个注解自动配置了一些开发中经常需要使用的组件,下面通...原创 2019-10-18 11:51:17 · 252 阅读 · 0 评论 -
Spring注解配置分析(四)——@Import注解分析
首先按照源码注释说明一下 @Import 的作用声明一个Bean ( @Import 注解的类如果没有 @Configuration 注解,至少有一个 @Bean 注解的方法)导入一个 @Configuration 注解的配置类导入 ImportSelector 的实现类导入 ImportBeanDefinitionRegistrar 的实现类 在处理配置类时,先处理 @Com...原创 2019-10-17 09:50:31 · 448 阅读 · 0 评论 -
Spring注解配置分析(三)——@ComponentScan处理流程
前面已经介绍了配置类处理流程, 解析配置类的过程就是处理配置类上的各种注解,例如 @Import 、 @ComponentScan 、 @Component、 @ImportResource 等。下面分析 @ComponentScan 的处理过程。 ConfigurationClassParser 的 doProcessConfigurationClass 方法中利用 Component...原创 2019-10-12 17:28:41 · 486 阅读 · 0 评论 -
Spring注解配置分析(二)——ConfigurationClassPostProcessor处理配置类流程
ConfigurationClassPostProcessors 是处理配置类的处理器,前面已经知道它是在初始化 AnnotationConfigApplicationContext 时添加到 BeanFactory 中,并且作为一个 BeanDenifitionRegistryPostProcessor 在 AbstractApplicationContext 的 refresh 方法中被调...原创 2019-09-27 18:09:31 · 511 阅读 · 0 评论 -
Spring注解配置分析(一)——从启动到加载配置类
Spring是一个IOC容器,只要配置了bean之后在程序的其他地方可以自动注入实例,现在使用最多是注解配置,那么配置的那些 @Configuration、@EnableAutoConfiguration等注解是如何工作的呢?Spring是通过BeanFactory保存Bean的配置,那么BeanFactory如何创建?SpringApplication启动时在其run方法中会创建一个App...原创 2019-09-26 13:31:50 · 488 阅读 · 0 评论 -
Springboot通过编程方式配置内嵌Tomcat
参考:WebApplicationContext、DispatcherServlet与web容器的ServletContext关系spring-boot中tomcat的启动过程Programmatic CustomizationCustomizing Beans by Using a BeanPostProcessor配置方式 在springboot的文档中有配置Tomcat的实例。...原创 2019-09-23 18:25:22 · 379 阅读 · 0 评论