Spring
文章平均质量分 89
从入门到精通Spring
刺豚灬
小小java架构师
展开
-
9 AOP底层
代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。此时,我们new一个UserService对象,然后执行test()方法,结果是显而易见的。到的都是UserService对象,但是执行test()方法时的效果却不一样了,这就是代理所带来的效果。上面是通过cglib来实现的代理对象的创建,是基于父子类的,被代理类(UserService)是父类,代理类是子类,代理对象就是代理类的实例对象,代理类是由cglib创建的,对于程序员来说不用关心。原创 2023-11-20 20:51:12 · 84 阅读 · 0 评论 -
8 Mybatis源码分析
1. 通过@MapperScan导入了MapperScannerRegistrar类2. MapperScannerRegistrar类实现了ImportBeanDefinitionRegistrar接口,所以Spring在启动时会调用MapperScannerRegistrar类中的registerBeanDefinitions方法3. 在registerBeanDefinitions方法中定义了一个ClassPathMapperScanner对象,用来扫描mapper。原创 2023-11-18 20:15:58 · 135 阅读 · 0 评论 -
7 推断构造方法
Spring中的一个bean,需要实例化得到一个对象,而实例化就需要用到构造方法。一般情况下,一个类只有一个构造方法:1. 要么是无参的构造方法2. 要么是有参的构造方法如果只有一个无参的构造方法,那么实例化就只能使用这个构造方法了。如果只有一个有参的构造方法,那么实例化时能使用这个构造方法吗?要分情况讨论:1. 使用AnnotationConfigApplicationContext,会使用这个构造方法进行实例化,那么Spring会。原创 2023-11-16 21:05:52 · 226 阅读 · 0 评论 -
6 Spring循环依赖
如果不考虑Spring,循环依赖并不是问题,因为对象之间相互依赖是很正常的事情这样,A,B就依赖上了但是,在Spring中循环依赖就是一个问题了,为什么?因为,在Spring中,一个对象并不是简单new出来了,而是会经过一系列的Bean的生命周期,就是。当然,在Spring中,出现循环依赖的场景很多,有的场景Spring自动帮我们解决了,而有的场景则需要程序员来解决,下文详细来说。要明白Spring中的循环依赖,得先明白Spring中Bean的生命周期。原创 2023-11-13 20:24:52 · 104 阅读 · 0 评论 -
5 Spring依赖注入源码
通过set方法进行注入构造方法进行注入。原创 2023-11-09 21:56:02 · 120 阅读 · 0 评论 -
4 Bean生命周期
4 利用MetadataReader进行excludeFilters和includeFilters,以及条件注解@Conditional的筛选(条件注解并不能理解:某个类上是否存在@Conditional注解,如果存在则调用注解中所指定。1 首先,通过ResourcePatternResolver获得指定包路径下的所有 .class 文件(Spring源码中将此文件包装成了Resource对象)的类的match方法进行匹配,匹配成功则通过筛选,匹配失败则pass掉。10 获取类上添加的所有注解类型集合。原创 2023-11-05 15:13:57 · 147 阅读 · 0 评论 -
3 Spring底层概念介绍
BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。还有很多...在Spring中,我们经常会通过以下几种方式来定义Bean:1. 2. @Bean这些,我们可以称之申明式定义Bean。我们还可以通过BeanDefinition设置一个Bean的其他属性。原创 2023-11-03 21:11:59 · 191 阅读 · 0 评论 -
1 Spring底层核心原理
spring面对有多个构造方法时:默认使用无参构造;如果没有无参构造且有多个有参构造,则会报错(需要使用@Autowired指定使用哪个有参构造)原创 2023-06-26 23:23:09 · 67 阅读 · 0 评论 -
2 手写模拟Spring底层
非懒加载的单例bean:spring容器启动时就创建懒加载的单例bean:.getBean()时再创建 @Lazy原型(多例)bean:每次 getBean时都创建,@Scope("prototype")原创 2023-06-29 21:46:01 · 68 阅读 · 1 评论