Appearance
Spring 常用设计模式
Spring 框架是设计模式的集中体现,阅读源码时可对照本教程中的名称。
工厂与单例
- BeanFactory / ApplicationContext:工厂方法 + 抽象工厂(创建与管理一整套 Bean)。
- 默认作用域 singleton:容器内 单例(与 GoF 单例不同:每容器一个,非 ClassLoader 全局)。
代理与装饰
- AOP:JDK 动态代理、CGLIB 代理,环绕通知类似在目标外包裹装饰/代理行为。
模板方法
- JdbcTemplate、RestTemplate:固定流程(获取连接、执行、释放),具体 SQL/回调由用户实现。
- AbstractApplicationContext#refresh:模板方法启动容器。
其他
- 适配器:
HandlerAdapter将不同 Controller 类型适配到统一 MVC 流程。 - 观察者:
ApplicationListener与事件发布(观察者)。 - 策略:
Resource多种实现、ViewResolver等可替换策略。
深入建议结合官方文档与 AbstractAutowireCapableBeanFactory 等类名自行跳转阅读。