# Spring底层简单实现 **Repository Path**: kaikz/mySpring ## Basic Information - **Project Name**: Spring底层简单实现 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-13 - **Last Updated**: 2025-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 手动实现 Spring 底层机制 ## 介绍 该项目手动实现了 Spring 框架的核心底层机制,包括以下功能: - **IOC 容器**:实现 Bean 的注册与获取 - **依赖注入**:支持自动注入 Bean 属性 - **BeanPostProcessor 机制**:支持 Bean 的初始化前后处理 - **AOP 功能**:实现日志记录的切面处理 ## 模块说明 - **注解模块**:定义了自定义注解,用于标记 Bean 及其作用域、注入方式等 - `@kaiComponent`:标记类为 Spring Bean - `@kaiComponentScan`:指定组件扫描的包路径 - `@kaiAutowired`:用于自动注入 Bean - `@Scope`:定义 Bean 的作用域(如 prototype) - **IOC 容器模块**: - `kaiSpringApplicationContext`:核心 IOC 容器类,负责加载配置、扫描 Bean、创建和管理 Bean 实例 - `BeanDefinition`:存储 Bean 的定义信息,如类对象和作用域 - **处理器模块**: - `kaiBeanPostProcessor`:Bean 后置处理器接口 - `myBeanPostProcessor`:实现了 Bean 初始化前后处理逻辑 - `initializingBean`:Bean 初始化回调接口 - **组件模块**: - `MonsterDao`:数据访问层组件 - `MonsterService`:业务逻辑层组件,依赖注入了 `MonsterDao` - `SmartDog`:实现 `SmartAnimalable` 接口的组件,用于演示 AOP - `SmartAnimalAspect`:切面类,提供日志记录方法 - **配置类**: - `kaiConfig`:配置类,使用 `@kaiComponentScan` 指定组件扫描路径 ## 使用说明 1. **启动项目** - 运行 `AppMain` 类的 `main` 方法,启动自定义 Spring 容器 2. **获取 Bean** - 通过 `kaiSpringApplicationContext` 获取已注册的 Bean 实例 3. **依赖注入** - 使用 `@kaiAutowired` 注解实现属性自动注入 4. **AOP 示例** - `SmartDog` 类的方法调用会触发 `SmartAnimalAspect` 中的日志记录功能 ## 扩展建议 - 可以添加更多切面类以支持更复杂的 AOP 场景 - 支持更多作用域(如 request、session) - 增加对构造函数注入的支持 - 实现 Bean 的销毁方法回调 ## 许可证 该项目遵循 MIT 许可证。详情请查看项目根目录下的 LICENSE 文件。