![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 89
T-Bryant
这个作者很懒,什么都没留下…
展开
-
spring 编译spring5源码 2020-08-22
场景近日回顾了下自己写的spring相关的博客,感觉深度不够,而且自己理解的部分比较少,所以打算重拾spring,希望能输出些有价值的东西吧。工作日沉浸在CRUD的海洋中,肯定是没时间,那只好牺牲自己的休息时间了。。之前编译过好几次,都没遇到什么大问题,这次有点坑,所以以此博客为输出,希望大家能少走弯路,不喜勿喷。正常流程笔者环境:jdk1.8 + gradle-6.6 + IntelliJ IDEA2018.3.6git拉源码直接clone github准备一个github账号和一个gi原创 2020-08-23 01:21:07 · 370 阅读 · 1 评论 -
spring 对于注入的理解
"注入"的概念本文讨论的"注入",指的是spring给Bean注入属性(也可以称之为"装配"),并非其他注入。spring要给Bean注入属性,有两种方式:如果程序员手动提供配置信息给spring,则是如果依赖配置信息,我们需要手动配置,故称为手动注入;如果不依赖配置信息,spring根据注入模型进行注入,故称为自动注入。其实注入的动作都是spring内部完成的,手动和自动区别在于是否有手动提供配置信息给spring。xml风格手动配置// 创建一个X类,一个Y类,X类包含一个属性,类型是Y原创 2020-06-09 21:53:51 · 1311 阅读 · 0 评论 -
spring spring mvc原理
spring mvc注册Controller方式@Controllerimplements Controllerimplements HttpRequestHandler + @Component("/uri")spring mvc默认识别两种Controller一种是@Controller声明,由RequestMappingHandlerMapping处理一种是BeanName声...原创 2020-01-19 17:20:54 · 130 阅读 · 0 评论 -
spring 源码笔记 spring-web如何实现servlet规范
servlet 3.0 规范角色:应用方(spring) + servlet + web容器(tomcat)servlet 3.0 规范规范提供ServletContainerInitializer接口,应用方提供实现类。规范提供"根目录/resources/META-INF/services/javax.servlet.ServletContainerInitializer"路径,应用...原创 2020-01-17 14:20:45 · 463 阅读 · 0 评论 -
spring 零xml配置 & 内置tomcat 启动spring mvc
xml方式配置spring mvc编写web.xml;注册listener、注册servlet、注册servlet-mapping编写spring-mvc.xml执行servlet规范:在"根目录/resources/META-INF/services/"添加配置文件javax.servlet.ServletContainerInitializer自定义一个类实现spring提供的We...原创 2020-01-17 10:33:38 · 795 阅读 · 1 评论 -
spring 源码笔记 启动过程(十三) finishBeanFactoryInitialization(beanFactory)
第十三步:finishBeanFactoryInitialization(beanFactory)第一次调用Bean后置处理器:判断Bean是否需要代理第一次调用Bean后置处理器调用链resolveBeforeInstantiation:1099, AbstractAutowireCapableBeanFactory (org.springframework.beans.factory.s...原创 2020-01-13 14:34:14 · 269 阅读 · 0 评论 -
spring 源码笔记 两次推断构造方法
spring 推断构造方法没有显式提供构造方法:使用默认构造方法提供一个构造方法,是默认构造方法:使用该构造方法提供一个构造方法,不是默认构造方法:使用该构造方法提供多个构造方法,包含默认构造方法:使用默认构造方法提供多个构造方法,不包含默认构造方法:报错提供多个构造方法,有一个@Autowiredtrue的构造方法:使用有@Autowiredtrue的构造方法提供多个构造方法,有多...原创 2020-01-08 12:11:18 · 455 阅读 · 0 评论 -
spring 源码笔记 启动过程(七) invokeBeanFactoryPostProcessors(beanFactory)
如何得到一个对象创建.java文件—编译得到.class文件—JVM加载到方法区得到class对象—初始化(或反射)得到对象如何得到一个spring Bean对象创建.java文件—编译得到.class文件—JVM加载到方法区得到class对象—spring容器扫描、解析、验证得到BeanDefinition—spring容器执行Bean生命周期并put到单例池—通过context.getB...原创 2019-12-25 15:15:29 · 187 阅读 · 0 评论 -
spring 源码笔记 spring启动过程(概括篇)
何为spring容器理论级别解释:由多个spring组件组成的应用程序叫spring容器。代码级别解释:所有实现ApplicationContext接口的类都是spring容器。如何得到一个普通对象简单描述:.java —> class —> object详细描述:创建.java文件 —> 编译得到.class文件 —> JVM加载到方法区得到class对象 —&...原创 2019-12-24 18:36:37 · 377 阅读 · 0 评论 -
spring Bean生命周期
本文关于spring Bean生命周期,做了一个简单的Demo(Annotation风格),spring版本:5.2.0.RELEASE。运行结果build.gradle添加spring-context依赖 // https://mvnrepository.com/artifact/org.springframework/spring-context compile group: '...原创 2019-12-11 21:50:47 · 172 阅读 · 0 评论