
Spring框架
文章平均质量分 64
Spring框架
Promise_J_Z
简单生活
展开
-
spring源码阅读-推断构造方法
1、默认情况下,或者只有一个构造方法的情况下,就会使用默认构造方法或者唯一的一个构造方法2、由程序员指定构造方法入参值,通过getBean()的方式获取,可以指定参数类型以及个数,但是该bean需要为LazyBean或者原型bean,否则在spring启动的时候就已经创建好存入单例池中,getBean()也只会取到单例池种的bean。3、由程序员自己注册Bean然后指定参数个数以及类型4、由程序员自己指定第N+1个参数的类型或bean名字类型名字5、通过指定spring自己选择构造方法。原创 2024-08-06 00:00:03 · 824 阅读 · 0 评论 -
Spring-bean销毁
在bean的声明周期中,存在一个记录bean销毁方法的阶段,以备于spring关闭的时候可以执行bean的销毁方法(单例bean)原创 2024-08-03 09:55:06 · 416 阅读 · 0 评论 -
Spring-依赖注入
inject方法中if (this.cached) 调用缓存的地方,针对于方法注入点和对象注入点使用的是不同的类,所以在方法注入点中即便cached变为true,但是在字段注入点中还是false,还是要重新找对应的bean,cached主要用于原型bean创建的时候第一次走流程查找bean,后面则可以从缓存中获取。原创 2024-08-03 09:52:49 · 350 阅读 · 0 评论 -
Spring-创建bean
根据传入的名字获取bean真正的名字(有可能传入的是别名或者工厂类别名,以&开头的),特别需要说明的是,spring针对于别名专门使用一个map(aliasMap)进行存储,key为别名,而value则是bean真正的名字。所以在创建bena第一步就需要先根据名字获取到bean真正的名字。tips:最终调用getBean使用的是RootBeanDefinition进行构建的。什么是抽象BeanDefinition?合并BeanDefinition。原创 2024-08-03 09:50:21 · 514 阅读 · 0 评论 -
Spring-包扫描
二次判断类是否可独立实例化对象,内部类或者接口,抽象类都会对应生成一个.class文件,但是这些文件部分是不能够实例化的,不可以生成bean,所以在生成BeanDefinition之前需要进行过滤判断。对扫描到的BeanDefinition进行赋值,但是此时只是将className赋值到BeanDefinition中,因为还没有创建该类。spring在启动的时候就会往includeFilters中加入component注解。判断当前类是否需要当作bean进行处理。原创 2024-08-03 09:34:55 · 482 阅读 · 0 评论 -
Spring-循环依赖
简单了说,就是互相依赖,例如A对象含有B对象作为成员变量,而B对象含有A对象作为成员变量,两个对象互相依赖。原创 2024-06-20 00:24:50 · 723 阅读 · 1 评论 -
Spring
二次判断类是否可独立实例化对象,内部类或者接口,抽象类都会对应生成一个.class文件,但是这些文件部分是不能够实例化的,不可以生成bean,所以在生成BeanDefinition之前需要进行过滤判断。对扫描到的BeanDefinition进行赋值,但是此时只是将className赋值到BeanDefinition中,因为还没有创建该类。spring在启动的时候就会往includeFilters中加入component注解。判断当前类是否需要当作bean进行处理。原创 2023-11-30 01:00:19 · 1202 阅读 · 0 评论