Spring
进行对spring源码分析和进阶学习
Notail^0^
心静脑清
展开
-
修改request请求体中的数据
需求新项目和旧项目要做一个兼容,前端请求都按照新项目的参数格式(post请求)去访问我们的功能,但是旧项目的访问也需要按照新项目的参数格式去访问我们的项目,参数格式不一致,就需要我们对参数的格式做一些处理存在的问题普通的参数可以从request的getParameterMap中获取,而@RequestBody的参数需要从request的InputStream中获取,但是InputStream只能读取一次,如果过滤器读取了参数,后面拦截器和controler层就读取不到参数了为什么只能读取一次?in原创 2021-12-22 17:23:00 · 3126 阅读 · 0 评论 -
从反射到动态代理到aop到spring为什么需要三级缓存
反射java程序在运行状态中,对于任意一个类,都能够在运行时知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。动态代理aop(拦截器+动态代理)三级缓存为什么只能用三级缓存,不能使用二级缓存如何进入到aop,过滤器,动态代理,bean生命周期,三级缓存,...原创 2021-12-03 10:25:48 · 1560 阅读 · 0 评论 -
Spring Boot启动源码分析
启动过程三个要点:启动类(SpringbootdemoApplication)上面的注解创建SpringApplication对象run方法注解:@Target(ElementType.TYPE) // 注解的适用范围,其中TYPE用于描述类、接口(包括包注解类型)或enum声明@Retention(RetentionPolicy.RUNTIME) // 注解的生命周期,保留到class文件中(三个生命周期)@Documented原创 2020-10-14 21:09:03 · 182 阅读 · 2 评论 -
spring bean生命周期详解,源码分析
目录如何获取beanClassPathXmlApplicationContext方法refresh源码分析finishBeanFactoryInitialization(beanFactory):spring bean的完整生命周期进阶版spring bean的完整生命周期如何获取bean首先,我们在代码中是怎样获取bean的,方式有以下几种,但不局限于这两种: @Test public void run1(){ //加载配置文件 ApplicationCont原创 2020-07-14 13:28:43 · 3450 阅读 · 4 评论