死磕spring源码
文章平均质量分 74
薛定e的猫
这个作者很懒,什么都没留下…
展开
-
Spring源码深度解析-1、Spring核心类简单介绍
在更新JAVA基础源码学习的同时,也有必要把Spring抓一抓,以前对于spring的程度仅在于使用,以及一点IOC/AOP的概念,具体深层的了解不是很深入,每次看了一点源码就看不下去,然后一转眼都忘记看了啥。所以这次专门买了书,来细细品味下Spring。希望能从这一波学习中加强自己对spring更深的认识。对Spring源码的正式深入学习之前,有必要了解下Spring中最核心的两个类:1...原创 2018-12-06 00:46:27 · 559 阅读 · 0 评论 -
Spring深度解析-16、Web环境下的IOC容器上下文初始化概述
如何在web.xml中配置,使tomcat容器加载时能初始化Spring的IOC容器?ContextLoaderListener监听器用来干什么ServletContextListenerContextLoaderServletContext是什么?原创 2019-01-12 21:16:13 · 271 阅读 · 5 评论 -
Spring深度解析-21、Spring各种依赖注入的注解区别
Spring和注入相关的常见注解有Autowired、Resource、Qualifier、Service、Controller、Repository、Component。1、@Autowired是自动注入,自动从spring的上下文找到合适的bean来注入@Autowired(required=true)表示必须找到匹配的Bean,否则将报异常。注意:用来标记属性@Autowired...原创 2019-01-17 23:12:19 · 543 阅读 · 0 评论 -
Spring源码解析-9、Bean的生命周期
图BeanFactoryAware、BeanNameAwareInitializingBean和DiposableBean的init-method和destroy-method原创 2019-01-03 23:19:16 · 662 阅读 · 0 评论 -
Spring深度解析-17、ContextLoaderListener初始化上下文全过程
初始化过程简述由ContextLoaderListener初始化的上下文称之为根上下文,ContextLoaderListener实现了ServletContextListener接口,ServletContextListener监听ServletContextEvnet事件,当ServletContext发生变化则触发ServletContextEvnet事件,比如tomcat启动时,就会触...原创 2019-01-13 16:16:11 · 556 阅读 · 0 评论 -
Spring深度解析-13、AOP创建代理对象的两种方式
AOP如何选择创建代理对象的方式JDK代理CGLIB代理原创 2019-01-08 23:20:04 · 484 阅读 · 0 评论 -
Spring深度解析-18、关于DispatcherServlet
什么是DispatcherServletDispatcherServlet在Spring MVC中属于MVC模式的C controller控制层,用于集中处理来自前端的请求,来自前端的请求通过DispatcherServlet进行分发处理,并且返回视图。什么时候去加载DispatcherServlet在ContextLoaderListener实现了spring mvc容器的根上下文的初始化...原创 2019-01-14 20:27:15 · 202 阅读 · 0 评论 -
Spring深度解析-14、AOP代理对象的执行过程分析
JDK代理的invokeCGLIB的intercept目标对象的invoke原创 2019-01-09 22:18:06 · 352 阅读 · 0 评论 -
Spring深度解析-19、DispatcherServlet的初始化
昨天讲到DispatcherServlet因为继承了FrameworkServlet、HttpServletBean、HttpServlet,因此可以通过Servlet的API对请求进行一些处理与响应。DispatcherServlet的初始化在ContextLoaderListener完成对根上下文的初始化之后才会执行。具体的初始化时间取决于web.xml中servlet关于load-on-...原创 2019-01-15 23:12:43 · 352 阅读 · 0 评论 -
Spring深度解析-12、AOP代理对象创建原理-ProxyFactoryBean
ProxyFactoryBean设计原理ProxyFactoryBean的配置ProxyFactoryBean创建AopProxy源码解析原创 2019-01-08 00:31:49 · 1212 阅读 · 0 评论 -
Spring源码解析-8、BeanFactory与FactoryBean
BeanFactory与FactoryBean区别FactoryBean接口介绍如何获取FactoryBean本身?FactoryBean实例介绍原创 2019-01-02 22:29:02 · 488 阅读 · 0 评论 -
Spring源码解析-7、spring容器中的Bean是否线程安全?
Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。spring 的 bean 有哪些scope[作用域]1、singleton:单例。【默认】2、prototype:原型,每次创建一个新对象3、request:请求,每次Http请求创建一个新对...原创 2019-01-01 16:13:06 · 2814 阅读 · 0 评论 -
Spring源码深度解析-2、IOC容器的设计
前言前面暂时结束jvm与java基础的整理,今天开始整理spring的内容。demo先从一个demo开始,最开始学spring,大家都写过这样的demo。//实体类package com.ycf.test;public class User { private String userName; private int userAge; public String getUser...原创 2018-12-27 00:20:08 · 522 阅读 · 0 评论 -
Spring源码深度解析-3、从XmlBeanFactory到编程式使用IOC容器
XmlBeanFactory简述XmlBeanFactory继承自DefaultListableBeanFactory,因此他拥有一个IOC容器最基本的功能,包括getBean,getBeanDefinationsName,除此之外,通过这个容器的名称也能了解到这个容器是可以读取以Xml文件方式定义的BeanDefinition的IOC容器。查看源码,可以看到XmlBeanFactory中确实...原创 2018-12-27 23:13:44 · 168 阅读 · 0 评论 -
Spring源码解析-4、IOC容器初始化
IOC容器初始化的几个步骤什么是BeanDefinitionBeanDefinition的Resource定位BeanDefinition的载入解析BeanDefinition在IOC容器中的注册原创 2018-12-29 23:10:04 · 147 阅读 · 0 评论 -
Spring源码解析-10、BeanFactoryPostProcessor 与 BeanPostProcessor
BeanFactoryPostProcessor 介绍BeanFactoryPostProcessor 使用案例通过源码了解BeanFactoryPostProcessor的执行时机BeanPostProcessor 介绍BeanPostProcessor 使用通过源码了解BeanPostProcessor的注册和执行时机InstantiationAwareBeanPostProces...原创 2019-01-04 23:39:17 · 286 阅读 · 0 评论 -
Spring源码解析-5、IOC容器的依赖注入
IOC容器的初始化过程有没有注入依赖IOC容器的初始化过程:1、BeanDefinition的Resource资源定位2、BeanDefinition的载入与解析3、BeanDefinition的注册这三个操作至始至终不存在Bean依赖注入。因此:IOC容器的初始化过程不存在依赖注入,那么可以实现在初始化阶段进行依赖注入吗?答案的可以的:refresh中有这样一段代码:// I...原创 2018-12-30 20:11:08 · 199 阅读 · 0 评论 -
Spring深度解析-11、AOP概念
什么是AOPAdvice通知PointCut切点Advisor通知器原创 2019-01-05 22:21:36 · 179 阅读 · 0 评论 -
Spring深度解析-15、AOP拦截器链实现原理
在上一篇章的学习中了解到AOP代理对象的执行过程,AOP中的代理对象有JDK代理与CGLIB代理两种方式,这两种代理对象在对目标对象的方法进行拦截,分别通过JdkDynamicAopProxy的invoke和DynamicAdvisedInterceptor的intercept来拦截。这两种的原理是一致的:1、先判断有没有拦截器链,如果没有,那么直接执行目标对象的方法2、如果有拦截器链,则封...原创 2019-01-10 21:15:51 · 1933 阅读 · 1 评论 -
Spring源码解析-6、spring单例如何解决循环依赖
什么叫循环依赖循环依赖即两个及以上的bean对象互相持有对方的引用,最终形成一个闭环。spring如何处理正在创建的BeanSpring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中,Bean标识符在创建过程中将一直保持在这个池中,因此如果在创建Bean过程中发现自己已经在“当前创建Bean池”里时将抛出BeanCurrentlyInCreationExcept...原创 2019-01-01 14:04:52 · 602 阅读 · 1 评论 -
Spring深度解析-20、DispatcherServlet如何处理请求
昨天讲解了DispatcherServlet初始化的过程,DispatcherServlet因为继承自HttpServlet,所以其初始化时通过HttpServlet的init方法开始的,整个过程大致是读取ServletContext中的配置参数、然后初始化上下文,初始化Spring mvc需要用到的对象,比如HandlerMapping等。DispatcherServlet因为是继承自Http...原创 2019-01-16 23:36:16 · 631 阅读 · 1 评论