使用时应添加参数: --add-opens java.base/java.lang=ALL-UNNAMED
实现了类似Spring的Ioc容器,支持Bean注册、依赖注入和生命周期管理。使用三级缓存化解了循环依赖的问题。
实现了简易的AOP框架,支持前置通知、后置通知等通知类型,灵活地根据有无接口切换JDK代理和CGLIB代理 ,基于 AspectJ 进行方法匹配,织入前置/返回增强,形成责任链调用。
Bean 生命周期管理: 负责设计 Bean 的创建、初始化、销毁等生命周期管理机制,处理 Bean 定义、依赖注入和对象的实例化过程。 构造器优选装配:参数名推断与类型匹配并用,多构造器场景下依然稳定注入。引入作用域接口,默认实现单例和原型作用域,可拓展。
设计模式: 广泛使用工厂模式、代理模式、单例模式等设计模式
- 从零设计并实现轻量级 Spring‑lite 框架(IoC+AOP),覆盖 Bean 注册、依赖注入与生命周期管理,提供应用上下文与事件发布;以 JUnit 5 单元测试验证核心路径稳定性。
- IoC 容器:实现 DefaultListableBeanFactory 与三级缓存(singleton/early/factory),通过单例提前曝光解决循环依赖;支持 singleton/prototype 及自定义 Scope。
- 自动装配:落地“构造器优先”注入策略,结合参数名发现、类型匹配与多构造器选择算法,保障复杂构造参数场景的确定性与稳定性。
- AOP 子系统:基于 AspectJ 表达式实现切点匹配与前置/返回通知;按目标类型在 JDK 动态代理与 CGLIB 间自动切换,拦截器链采用责任链模型,确保顺序可控与扩展性。
- 配置与工具:基于 dom4j 实现 XML Bean 定义解析与命名空间扩展;提供 DefaultConversionService(字符串→布尔/数值等)、属性占位符解析与 Environment 抽象,提升配置一致性与易用性。