
JavaEE
文章平均质量分 92
JavaEE博客
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO
向前看,不回头
展开
-
SpringBoot知识点及其源码解析(3)
总结:首先获取handler,获取后需要处理器和解析器进行处理,获取处理器和适配器成功后调用handle放进行处理,里面拿到参数解析器和返回值处理器,进行循环27个参数解析器,获取最适合解析的参数解析器,看参数是否存在某个注解,其中的@PathVariable是将参数放到map集合中,key是参数名称,通过key寻找value参数值。在invokeHandlerMethod方法中,首先是获取参数解析器课返回值处理器,然后在进行处理。对handle进行处理,返回值是ModelAndView。原创 2025-03-08 15:27:11 · 667 阅读 · 0 评论 -
springboot知识点以及源码解析(2)
springboot对静态资源的映射规则:在类路径下面定义目录static或public或resources或者META-INF/resources,访问时项目根目录+静态资源的名称在springboot中,如果项目中存在同名的静态资源和同名的动态资源。那么我们会优先去访问动态资源,如果动态资源不存在,然后再去访问对应的静态资源,如果静态资源也找不到,那么就报404 的异常 ,为了解决这个问题。原创 2025-03-08 01:39:33 · 940 阅读 · 0 评论 -
SpringBoot知识点及其源码解析(1)
以web启动器为例,在spring-boot-starter-test-3.4.3.pom文件整合了一系列的依赖,那么当启动程序后会不会进行自动配置?当获取到这个容器后,可以从容器中获取所有bean的名字,此时就可以在控制台发现很多bean的名称,都是自动配置进来的。原创 2025-03-07 12:01:59 · 889 阅读 · 0 评论 -
Spring源码解析(4)
循环依赖时两个对象相互引用,要解决循环依赖,两个对象必须是单例对象,并且属性是基于set方法注入。如果率先创建A对象,首先尝试通过getBean里的getSingleton获取对象A,由于对象A第一次创建,所以这里获取不到,所以这里只能调用doCreateBean方法进行对象A的创建,基于反射机制。原创 2025-03-07 00:28:54 · 838 阅读 · 0 评论 -
Spring源码解析(3)
doGetBean()是获取(创建)bean,首先获取bean的名称,有transformedBeanName进行处理,之后从缓存中获取spring之前创建的对象,获取到普通的bean直接返回,如果实现了FactoryBean接口,就需要转换。有两个值得关注的属性,一个是name,就是bean的名称,另一个是requiredType,就是预期要得到bean的类型。else主要是当子容器想要获取信息时,如果父容器有bean,子容器没有,从父容器获取bean,如果子父容器都有,从子容器获取bean,原创 2025-02-26 17:27:43 · 874 阅读 · 0 评论 -
Spring源码解析(2)
对于第一个问题,parseBeanDefinitionElement方法中,首先获取bean标签的id属性,之后获取bean标签的name属性,如果name属性不为空,就将获取的name字符串按照,或者;方式分割成数组,如果bean标签id属性不存在,name属性存在,就把第一个name属性拿出来作为bbean的id,之后进行校验bean的id是否唯一,并真正的开始解析bean的标签属性,在如下方法中。原创 2025-02-26 15:13:55 · 1062 阅读 · 0 评论 -
Spring源码解析(1)
从BeanFactory说起其中,BeanFactory是整个bean工厂的顶级接口,里面定义了容器最基本的约束和规范,提供了管理Bean的基本功能。例如这里有根据名称获取Bean:Object getBean(String name),根据类型获取Bean:<T> T getBean(Class<T> requiredType),判断是否是单例Bean:boolean isSingleton(String name),判断是否是多例Bean:boolean isPrototype(String name)原创 2025-02-25 17:35:31 · 1066 阅读 · 0 评论