Mybatis对比JDBC的优势:(1)使用连接池管理数据库连接数据库连接,避免了JDBC频繁的连接和断开数据库资源;(2)使用mapper.xml配置文件的形式,将sql语句与java代码分离;(3)mybatis通过parameterType向sql中传递参数,更加灵活;(4)mybatis可以将查询结果自动映射为java对象,避免了jdbc手工写代码的繁琐过程。Mybatis源码解析过程——解析mybtatis-config.xml全局配置文件解析mybatis-config.xml配置文
原创
2021-09-07 15:54:31
262阅读
1. 读源码的方法java程序员都知道读源码的重要性,尤其是spring的源码,代码设计不仅优雅,而且功能越来越强大,几乎可以与很多开源框架整合,让应用更易于专注业务领域开发。但是能把spring的源码吃透,不仅需要花费大量时间与精力,更需要需要掌握一些方法。下面结合自己读源码与走过的一些弯路,结合网上知名博客专家的建议,整理出以下要点,与读者共勉。1.1 重视官方英文文档spring的官方文档写
转载
2021-04-20 22:44:09
198阅读
2评论
引言在第二期介绍容器的refresh方法开始之前,首先大家应该对Spring容器的整个继承体系有个大概的了解,不然就会有雾里看花的感觉为了帮助大家理清整个继承体系,我将接下来所要涉及到的几个重要类及接口的继承关系贴上来,在阅读中如有疑惑的话,可以回过头来看看这几张图XmlWebApplicationContext由web容器启动的Spring容器类,注意与DefaultListableBeanFa
一、Spring的整体架构和模块 二、模块分类: 1、Core Container Core Container包含有Core 、Beans、Context、和Expression Language模块 2、Data Access/Integration Data Access/Integratio
原创
2021-07-29 16:34:29
1198阅读
AspectJAfterThrowingAdvice
AfterReturningAdviceInterceptor
AspectJAfterAdvice
MethodBeforeAdviceInterceptor 总结 正文上一篇博文中我们讲了代理类的生成,这一篇主要讲解剩下的部分,当代理类调用时,目标方法和代理方法是如何执行的,我们还是接着上篇的ReflectiveMetho
如下文章字数大约1600字,阅读时间需要15分钟左右。前言:如果提起Spring框架,可能你会非常熟悉,曾经或者现在都使用过。但是,可能很少人阅读过Spring源码。最近也在思考,如果作为开发人员来讲,什么才是其核心竞争力。个人感觉,随着工作年龄的增长,对java底层原理了解越透彻对于个人来讲越重要。了解底层原理,清楚架构逻辑实现这远比会使用架构更具核心竞争力。因为,就算一个新框架东西不熟悉,你仔
原创
2020-12-25 21:16:28
412阅读
Spring的标签包括默认标签和自定义标签两种 默认标签的解析方法:
原创
2021-07-29 16:15:38
109阅读
在前面的文章已经基本上讲过Hystrix的由来,功能介
原创
2023-05-14 22:58:19
428阅读
第一章:基于Annotation的IOC初始化1、Annotation的前世今生2、定位Bean扫描路径3、读取Annotation元数据
原创
2022-05-17 14:21:34
198阅读
〇、AOP概念
Aspect:切面
给业务方法增加到功能,切面泛指交叉业务逻辑。上例中的事务处理、日志处理就可以理解为切面。常用的切面是通知(Advice)。实际就是对主业务逻辑的一种增强。
Pointcut:切入点
切入点指声明的一个或多个连接点的集合,通过切入点指定一组方法。被标记为 final 的方法是不能作为连接点与切入点的。因为最终的是不能被修改的,不能被增强的。
Advice:
原创
精选
2023-07-02 12:18:23
1837阅读
前言
我是子路,一个把Java当饭吃的人。
笔者之前在华南谷歌搬砖,在系统架构设计、分布式、微服务、高并发、高可用等技术架构具有丰富的实战经验。对市面上主流的开源框架源码——spring、nacos,springboot、JDK并发工具等等都有深入的研究。Spring是Java语言里面一个非常重要的框架,可以说任何一个学Java的人都必须要接触到Spring。这里笔者先给大
前言大家好,我是子路,一个靠Java吃饭的男人前两篇文章:从源码的角度来解读spring的循环引用(一)——生命周期源码深度解析spring的循环引用(二)——逐条解读代码 已经介绍完了循环依赖在Bean生命周期中的体现,以及对每一条代码做出了诠释。这篇文章将接着上面两篇文章,完成Spring当中的循环应用的讲解。正文我先给出这个方法的源码全貌;重点我用红色标记了,并且会在进行代码解析;黄色线下面
IOC 是 spring 中最最最最核心的部分。IOC 即控制反转,就是说资源不由使用资源的双方管理,而由不使用资源的第三方(IOC容器)管理。对象不再由使用者来创建(比如 new)和管理。它主要有两个好处:资源集中管理,实现资源的可配置和易管理降低使用双方的依赖程度,也就是解耦IOC 容器的最顶层接口是 BeanFactory,也就是说,只要实现了&nbs
优秀的源码设计思想以及实现方式都是相通的,随着各种开源软件的发展,各家都会融合别家优秀之处;最后的结果就是所有的开源软件从设计上或者实现上都变得越来越相似.《spring源码深度解析》基于spring3.2版本编写.spring整体架构:(1) core container核心容器core模块是其他组件的基本核心;beans模块包含访问配置文件、创建和管理bean,提供IOC控制反转和DI依赖注入
〇、AOP概念 Aspect:切面 Pointcut:切入点 Advice:通知、增强 JoinP
原创
2023-07-30 07:45:12
153阅读
【spring源码】源码分析(一)mac版idea引入spring源码(二)spring的学习流程(三)spring源码分析【1】refresh()方法概览(AbstractApplicationContext抽象类里的refresh方法)(1)阅读源码进行debug调试的方法【2】通过一张思维导图说明refresh每个方法主要完成的事【3】spring工作流程图(四)spring源码设计架构,
Spring源码解析 -- 读取bean元数据spring源码解析 -- 构造beanspring源码解析 -- 注入属性spring源码解析 -- Spring ContextSpring源码解析 -- AOP原理(1)Spring源码解析 -- AOP原理(2)Spring源码解析 -- SpringMvc原理源码分析基于spring 4.3.x本文通过阅读Spring MVC的源码,解析Sp
springaop 底层还是JDK动态代理,CGLB动态代理。通过把增强器封装到Advised中,把Advised与InvocationHandler或者MethodInterceptor联系起来,完美的实现AOP技术
原创
2021-05-26 13:20:57
474阅读
我们得知JDK动态代理两要素:Proxy+InvocationHandlerCGLB动态代理两要素:Enhancer + MethodInterceptor(Callback) springAOP底层是通过动态代理和CGLB代理实现的。也就是spring最终的落脚点还应该是在Proxy+Invoca
转载
2020-04-02 09:32:00
60阅读
2评论
一、创建用于属性承载的BeanDefinition BeanDefiniton是一个接口,在Spring中存在三种实现:RootBeanDefinition、ChildBeanDefinition、GenericBeanDefiniton.三种实现均继承了AbstractBeanFactory,其中
原创
2021-07-29 16:15:37
129阅读