一、引言:为何要将 AOP 动态代理融入 Bean 生命周期 在自定义 AOP 核心功能(例如基于 JDK 或 Cglib 代理)之后,单元测试能验证切面拦截机制是否生效,但这离实际应用还差一大步。为提升框架实用性,我们需要将 AOP 能力无缝嵌入 Spring 容器,让用户仅通过配置即可使用,而无需手动处理代理逻辑(基于 Proxy.newPro…
面向切面编程(AOP,Aspect-Oriented Programming)是一种在软件开发中用于解耦横切关注点的编程范式,通过在不修改业务逻辑的前提下,将统一职责(如日志记录、性能监控、安全校验等)封装到“切面”中。在 Spring 框架中,AOP 是核心机制之一,而其底层的实现依赖于 动态代理技术。本教程将基于 JDK 动态代理与 Cglib…
学习xfg的版本:fuzhengwei/small-spring: 🌱《 Spring 手撸专栏》,本专栏以 Spring 源码学习为目的,通过手写简化版 Spring 框架,了解 Spring 核心原理。在手写的过程中会简化 Spring 源码,摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下…
搭配课程说明 - 飞书云文档食用。 0 基本概念 0.1 对比单体架构 与单体架构对应的是微服务架构。以下是两者的对比: 单体架构 优点 开发简单 部署方便 测试容易 缺点 可维护性差 扩展性受限 技术栈受限 微服务架构 优点 高可扩展性:每个微服务都可以独立进行扩展,可以根据不同服务的负载情况,灵活地分配资源,提高资源利用率。 可维护性好:微服务…
0 准备工作及前置知识 导出初始化文件并上传到gitee CMD137/hm-dianping 1 短信登录 1.1 发送验证码 public Result sendcode(String phone, HttpSession session) { //1.校验手机号码 if(RegexUtils.isPhoneInvalid(phone)) re…
0.准备工作及前置知识: 0.1 版本控制 Git在IDEA中的使用(详细图文全解)_idea操作git-CSDN博客 Gitee仓库:CMD137/sky-take-out 0.2 Nginx:反向代理与负载均衡 可以发现前端请求URL与后端设计的URL并不相同,但能“连接”起来。 这是由Nginx反向代理实现的:将前端发送的动态请求转发到后端服…