2024年10月29日
11|ModelAndView :如何将处理结果返回给前端? 你好,我是郭屹。今天我们继续手写MiniSpring。这也是MVC内容的最后一节。 上节课,我们对HTTP请求传入的参数进行了自动绑定,并调用了目标方法。我们再看一下整个MVC的流程,现在就到最后一步了,也就是把返回数据回传……
阅读全文
2024年10月29日
hello, 我是郭屹。从这节课起,我们将进入一个新的部分:MVC(Model-View-Controller)模式的学习。 在前一章节中,我们已经实现了一个简易版本的IoC(Inversion of Control)容器。尽管我们的MiniSpring框架相对原生的Spring框架来说功能较为基础……
阅读全文
2024年10月29日
05|实现完整的IoC容器:构建工厂体系并添加容器事件 你好,我是郭屹。 前面我们已经实现了IoC的核心部分,骨架已经有了,那怎么让这个IoC丰满起来呢?这就需要实现更多的功能,让我们的IoC更加完备。所以这节课我们将通过建立BeanFactory体系,添加容器事件等一系列操作,进一……
阅读全文
2024年10月29日
02|扩展Bean:如何配置constructor、property和init-method? 你好,我是郭屹。 上节课,我们初步实现了一个MiniSpring框架,它很原始也很简单。我们实现了一个BeanFactory,作为一个容器对Bean进行管理,我们还定义了数据源接口Reso……
阅读全文
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(控制反……
阅读全文