Spring5.x
只道当时是寻常
这个作者很懒,什么都没留下…
展开
-
HandlerMapping之RequestMappingHandlerMapping获取Handler
一、HandlerMapping类图二、根据请求获取HandlerExecutionChain2.1 获取HandlerMethod流程(1) 根据请求URL获取直接匹配的List<RequestMappingInfo>作为候选,如果没有则取所有的RequestMappingInfo作为候选,遍历候选的RequestMappingInfo,调用Reques...原创 2020-03-06 22:01:33 · 1971 阅读 · 0 评论 -
HandlerAdapter之RequestMappingHandlerAdapter初始化
一、类图1.1 HandlerAdapter类图1.2 RequestMappingHandlerAdapter类图二、初始化2.1 初始化流程2.2 RequestMappingHandlerAdapter2.2.1afterPropertiesSetpublic void afterPropertiesSet() {// 首先执行此...原创 2020-03-06 20:31:49 · 787 阅读 · 0 评论 -
HandlerMapping之RequestMappingHandlerMapping初始化
一、HandlerMapping类图默认情况下,SpringMVC 将加载当前系统中所有实现了HandlerMapping 接口的bean。如果只期望SpringMVC加载指定的handlermapping 时,可以修改web.xml中的DispatcherServlet的初始参数,将detectAllHandlerMappings的值设置为false:<init-param>...原创 2020-03-05 21:01:39 · 1005 阅读 · 0 评论 -
Spring5.X 事务相关类介绍
1、创建事物代理流程(1) 注入类型为TransactionAttributeSource的Bean对于方法事务属性获取规则:如果方法中存在事务属性,则使用方法上的事物属性,否则使用方法所在的类上的属性;如果方法所在类的属性上还是没有搜寻到对应的事务属性,那么再搜寻接口中的方法,再没有的话,最后尝试搜寻接口的类上面的声明。(2) 注入类型为TransactionInterceptor的Bea...原创 2020-03-01 21:16:16 · 241 阅读 · 0 评论 -
Mybatis集成Spring原理分析
概述MapperFactoryBean扩展SqlSessionDaoSupportSqlSessionDaoSupport可以设置SqlSessionFactory或SqlSessionTemplate,对于设置SqlSessionFactory会包装成SqlSessionTemplateSqlSessionTemplate实现了SqlSession接口,实例化SqlSessionTe...原创 2020-03-01 21:14:29 · 1669 阅读 · 0 评论 -
Spring5.X 事务管理器 PlatformTransactionManager
一、事务管理器类图二、事务管理器概述PlatformTransactionManager接口定义了获取事务(getTransaction)、提交事务(commit)、回滚事务(rollback)三个方法。getTransaction:根据指定的传播行为,返回当前活动的事务或创建新的事务。commit:提交给定事务的提交。如果已通过编程将事务标记为仅回滚,请执行回滚。r...原创 2020-03-01 21:11:45 · 1820 阅读 · 0 评论 -
Spring5.x Transaction 自定义事务标签
1、自定义事务标签XML配置<tx: annotation-driven transaction-manager="transactionManager" mode="aspectj "/>2、自定义事务标签命名空间处理器TxNamespaceHandlerpublic class TxNamespaceHandler extends NamespaceHandl...原创 2020-02-29 21:21:27 · 1181 阅读 · 0 评论 -
Spring 属性编辑器
1、配置自定义编辑器、自定义属性编辑器登记员CustomEditorConfigurerCustomEditorConfigurer是一个BeanFactoryPostProcessor,调用postProcessBeanFactory注册自定义属性编辑器。可以配置自己的自定义属性编辑器。自定义编辑器扩展PropertyEditorSupport,自定义属性编辑器登记员扩展Prope...原创 2020-02-26 13:04:18 · 264 阅读 · 0 评论 -
Spring AOP 创建代理ProxyFactory
1、ProxyFactory类图2、ProxyFactory 获取代理对象public Object getProxy() {returncreateAopProxy().getProxy();}public Object getProxy(@Nullable ClassLoader classLoader) {returncreateAopProx...原创 2020-02-26 13:03:38 · 330 阅读 · 0 评论 -
基于Cglib动态代理-ObjenesisCglibAopProxy
1、CglibAopProxy1.1 获取代理对象public Object getProxy() {return getProxy(null);}public Object getProxy(@Nullable ClassLoader classLoader) {if (logger.isTraceEnabled()) { logger.trace("Cr...原创 2020-02-26 13:03:05 · 381 阅读 · 0 评论 -
基于Jdk动态代理-JdkDynamicAopProxy
1、JdkDynamicAopProxy 基于JDK动态代理创建代理对象JdkDynamicAopProxy实现了AopProxy, InvocationHandler,InvocationHandler是基于JDK动态代理必须实现的回调接口。执行流程如下:(1)目标本身并未覆写equal/hashCode方法。调用JdkDynamicAopProxy的equals/hashCode方法...原创 2020-02-26 13:02:27 · 680 阅读 · 0 评论 -
动态AOP-Spring AOP 基于@AspectJ
XML配置 aspectj-autoproxy注册自定义命名空间Bean定义解析器 AopNamespaceHandlerpublic class AopNamespaceHandler extends NamespaceHandlerSupport {public void init() {// In 2.0 XSD as well as in 2.1 XSD.regis...原创 2020-02-26 13:01:34 · 475 阅读 · 0 评论 -
静态AOP-Spring集成AspectJ
一、XML配置静态AOP load-time-weaver1、BeanDefinition解析阶段自定义名称空间 load-time-weaver1.1 注册LoadTimeWeaverBeanDefinitionParserpublic class ContextNamespaceHandler extends NamespaceHandlerSupport {@Override...原创 2020-02-26 13:00:36 · 465 阅读 · 0 评论 -
Spring5.X JdbcTemplate
1、JdbcTemplate类图2、JdbcAccessor{@link org.springframework.jdbc.core.JdbcTemplate}和其他JDBC访问DAO帮助器的基类,定义了诸如DataSource和异常转换器之类的通用属性3、JdbcOperations指定一组基本JDBC操作的接口。 由{@link JdbcTemplate}实现。...原创 2020-02-26 12:57:19 · 370 阅读 · 0 评论 -
Spring5.x之XmlBeanFactory源码解析-解析默认标签(三)
Spring5.x之XmlBeanFactory源码解析-XmlBeanFactory整体概览(一)Spring5.x之XmlBeanFactory源码解析-解析前准备(二)解析默认标签 Spring中的标签包括默认标签和自定义标签两种 , 如<bean>和<aop:config>两种标签的用法以及解析方式存在着很大的不同。DefaultBeanD...原创 2019-04-22 13:47:39 · 293 阅读 · 0 评论 -
Spring5.x之Resource
1、Resource类图 在Java中,将不同来源的资源抽象成URL,通过注册不同的handler(URLStreamHandler)来处理不同来源的资源的读取逻辑,一般handler的类型使用不同前缀(协议,Protocol)来识别,如“file:”“http:”“jar:”等,然而URL没有默认定义相对Classpath或ServletContext等资源的handle...原创 2019-04-18 13:18:09 · 320 阅读 · 0 评论 -
Spring5.x之XmlBeanFactory源码解析-解析前准备(二)
Spring5.x之XmlBeanFactory源码解析-XmlBeanFactory整体概览(一)1、XmlBeanFactory实例化时设置忽略给定依赖接口的自动装配 XmlBeanFactory实例化时首先调用父类AbstractAutowireCapableBeanFactory构造器,其中会调用ignoreDependencyInterface设置忽略给定依赖接口的...原创 2019-04-18 13:43:10 · 237 阅读 · 0 评论 -
AbstractBeanFactory.getBean获取bean逻辑(一)
调用AbstractFactoryBean.getBean方法获取bean,实际上是调用doGetBean方法获取bean下面进入到doGetBean所执行的操作如下:1 、转换bean NamebeanName可能是别名,也可能是FactoryBean ,所以需要进行一系列的解析。(1)去除FactoryBean的修饰符,也就是如果name= "&b...原创 2019-05-10 13:16:10 · 1223 阅读 · 0 评论 -
AbstractBeanFactory.getBean获取bean逻辑(二)
AbstractBeanFactory.getBean获取bean逻辑(一)6、标记要创建的bean为已创建或即将创建 如果创建bean不仅仅类型检查,调用AbstractBeanFactory.markBeanAsCreated方法将指定的bean标记为已创建(或即将创建),这允许bean工厂优化其缓存的beanDefinition以重复创建指定的bean。 ...原创 2019-05-16 16:14:57 · 270 阅读 · 0 评论 -
Spring5.x之XmlBeanFactory源码解析-XmlBeanFactory整体概览(一)
1、XmlBeanFactory继承类图2、XmlBeanFactory继承树接口和类说明AliasRegistrγ : 定义对alias的简单增删改查等操作SimpleAliasRegistry : 使用map作为alias的缓存,并对接口AliasRegistry进行实现BeanDefinitionRegistry : 定义对 BeanDefinition 的各种增删改操作...原创 2019-04-17 13:12:05 · 472 阅读 · 0 评论