2024年10月29日
20 | AutoProxyCreator:如何自动添加动态代理? 你好,我是郭屹,今天我们继续手写MiniSpring,这也是AOP正文部分的最后一节。今天我们将完成一个有模有样的AOP解决方案。 问题的引出 前面,我们已经实现了通过动态代理技术在运行时进行逻辑增强,并引入了Pointcu……
阅读全文
2024年10月29日
内容 1 2 if (method.getName().equals("doAction")) { } 在软件开发过程中,当我们需要对多个方法进行统一的增强处理,比如添加监控日志等,直接指定每个方法名的做法变得不切实际。为了解决这个问题,我们可以采用**切点(Pointcut)**的概念,通过配置灵活的方法名匹配规则来代理一组相关的方法。 目标 实现基于方法名通配符的切……
阅读全文
2024年10月29日
18|拦截器:如何在方法前后进行拦截? 你好,我是郭屹,今天我们继续探讨手写MiniSpring的旅程。 在之前的章节中,我们使用JDK动态代理技术实现了AOP(面向切面编程),并结合了IoC容器来管理这些代理对象。这让我们能够以非侵入的方式,在业务代码运行时动态地添加诸如日志记录、……
阅读全文
2024年10月29日
MiniSpring 手写教程:MyBatis SQL语句配置化 引言 在上一节课中,我们基于JDBC Template对数据库操作进行了进一步的拆解,包括数据源DataSource、参数处理ArgumentPreparedStatementSetter以及结果转换RowMapper和RowMapperRe……
阅读全文
2024年10月29日
14 | 增强模板:如何抽取专门的部件完成专门的任务? 大家好,我是郭屹,今天我们将继续探讨如何手写MiniSpring框架。 在上一堂课中,我们从JDBC的常规程序流程中抽象出了一个通用模板,并对其进行了拆解。我们把SQL语句作为参数传递,并将SQL语句执行后的结果处理逻辑作为一个匿名类……
阅读全文
2024年10月29日
aaaaaaa a# 整合IoC和MVC:在Web环境中启动IoC容器 你好,我是郭屹。 通过上一节课的工作,我们已经初步实现了一个基础的MVC框架,并且引入了@RequestMapping注解以及对指定包进行全局扫描来简化XML配置。然而,这个MVC框架是独立运行的,并没有与之前创建的IoC(控制反……
阅读全文
2024年10月29日
06|再回首:如何实现一个IoC容器? 你好,我是郭屹。 第一阶段的学习完成啦,你是不是自己也实现出了一个简单可用的IoC容器呢?如果已经完成了,欢迎你把你的实现代码放到评论区,我们一起交流讨论。 我们这一章学的IoC(Inversion of Control)是我们整个MiniSpring……
阅读全文
2024年10月29日
01|原始IoC:如何通过BeanFactory实现原始版本的IoC容器? 你好,我是郭屹,从今天开始我们来学习手写MiniSpring。 这一章,我们将从一个最简单的程序开始,一步步堆积演化,最后实现Spring这一庞大框架的核心部分。这节课,我们就来构造第一个程序,也是最简单的一……
阅读全文
2024年10月29日
你好,我是郭屹。 《手把手带你写一个MiniSpring》课程的更新告一段落,非常开心能和你交流技术、共同进步,为认真学习的你点赞! 为了帮你检验自己的学习成果,我特意准备了一套 期末测试题。题目共有 20 道,6道单选题,14道多选题,满分 100 分,快来挑战一下吧! ](http://time.geekbang.org/quiz/intro?act_id=5787&exam_id=12727)……
阅读全文
2024年10月29日
开篇词|“眼脑手”结合,搞定Spring框架底层原理 你好,我是郭屹,一名深耕软件开发行业30年的老兵。欢迎你跟我一起手写MiniSpring,一个mini版的Spring框架。 在正式开始学习之前,我先介绍下我自己。说起来,我与Java和Spring打交道也有二十几年了。1998年……
阅读全文