
Spring核心原理
Spring学习总结
@从入门到入土
学无止境
展开
-
手写简化版SpringMVC
目录基本思路与流程环境搭建与配置核心实现初始化加载配置文件扫描相关的类IOC容器初始化依赖注入初始化HandlerMapping请求分发验证基本思路与流程环境搭建与配置1. 创建maven工程,然后在src/main/webapp/WEB-INF目录下创建web.xml文件,文件内容:<?xml version="1.0" ...原创 2019-09-16 20:46:33 · 4029 阅读 · 0 评论 -
Spring事务的传播属性
所谓Spring事务的传播属性,就是定义在存在多个事务同时存在的时候,Spring应该如何处理这些事务的行为。这些属性在TransactionDefinition中定义,具体常量的解释见下表:常量名称 常量解释 PROPAGATION_REQUIRED 支持当前事务。 如果当前有事务,则加入当前事务;如果当前没有事务,就新建一个事务。 这是最常见的选择,...原创 2019-10-02 15:14:48 · 1365 阅读 · 0 评论 -
Spring AOP代理对象创建流程
Spring AOP初始化的起点是在bean初始化流程后置处理中。 /** * bean的初始化流程 */ protected Object initializeBean(final String beanName, final Object bean, @Nullable RootBeanDefinition mbd) { if (System.getSecurityMana...原创 2019-10-01 18:23:31 · 3018 阅读 · 0 评论 -
Spring AOP基本术语与Demo
目录什么是AOP?DemoAOP术语解释什么是AOP?AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,可以通过预编译和运行时的动态代理,实现在不修改源代码的情况下对程序功能进行增强。AOP是一种编程思想,主要是为了将一些通用性功能从具体业务中分离出来,如日志、事务、权限等,达到解耦的目的。AOP有很多专业术语需要我们深刻理解,如...原创 2019-09-29 18:27:01 · 1136 阅读 · 0 评论 -
Spring解决bean的循环依赖
什么是循环依赖?循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景单例bean的构造器的循环依赖。 单例bean的field属性的循环依赖。怎么检测是否存在循环依赖?B...原创 2019-09-28 16:24:52 · 2434 阅读 · 0 评论 -
Spring DI依赖注入
依赖注入触发时机1、Spring创建的bean默认是singleton模式,会以非懒加载的方式加载,即在IOC容器初始化时,容器调用getBean()方法,对bean进行实例化,同时触发依赖注入。2、如果指定bean为prototype模式,会以懒加载的方式加载,在用户第一次调用getBean()方法时触发依赖注入。依赖注入流程无论是singleton模式还是prototype模式...原创 2019-09-28 15:43:42 · 1176 阅读 · 0 评论 -
Spring IOC容器初始化流程
IOC容器初始化三部曲一、定位:定位配置文件的位置或扫描相关的注解。二、加载:将配置信息加载到内存中。三、注册:根据载入的配置信息将对象初始化到IOC容器中。ClassPathXmlApplicationContextClassPathXmlApplicationContext是ApplicationContext的典型实现,以xml方式实现IOC容器的初始化。首先指...原创 2019-09-26 23:59:27 · 773 阅读 · 0 评论 -
Spring Web容器初始化入口
我们都知道web项目启动前要先初始化servlet,执行servlet的init方法,因此我们以Spring的DispatcherServlet的init方法为切入点。在DispatcherServlet类中并没有找到init方法,继续从其父类中搜索,DispatcherServlet -> FrameworkServlet ->HttpServletBean,最终在其父类Htt...原创 2019-09-25 22:29:29 · 1976 阅读 · 0 评论 -
Spring IOC容器核心类
bean工厂体系Spring Bean 的创建是典型的工厂模式,以下是较为常用的bean factory关系图:其中BeanFactory作为最顶层的一个接口类,它定义了IOC容器的基本功能规范,BeanFactory有三个重要的子类:ListableBeanFactory、HierarchicalBeanFactory 和AutowireCapableBeanFactory。每个接...原创 2019-09-25 21:42:52 · 1901 阅读 · 0 评论 -
Spring事务原理
目录事务属性解析优先级事务的执行过程创建事务事务回滚事务提交Spring的事务管理是Spring AOP最为经典的代表。以下着重分析一下Spring对于事务属性的解析、事务创建、事务回滚、事务提交的核心原理。事务属性解析优先级在AbstractFallbackTransactionAttributeSource类的computeTransactionAttribut...原创 2019-10-03 19:38:12 · 1057 阅读 · 0 评论