1. 工厂模式
使用BeanFactory来get一个Bean,也可能通过一个ApplicationContext来获取到一个Bean。
2. 单例模式
Spring IOC中管理的Bean默认就是单例模式。
3. 代理模式
AOP应用的就是代理模式。AOP 可以使用代理模式来实现一些横切关注点,尤其是在涉及到方法调用前后的处理时。这是因为代理模式允许你在调用一个对象的方法前后添加额外的逻辑。
4. 模板模式
整合第三方框架的时候,都是用的模板模式,例如RedisTemplate。
5. 策略模式
Resource接口里面针对不同的资源设计了不同的实现类,例如ClassPathResource就是一个实现类,表示我们从ClassPath这个路径去加载资源。
除此之外,还有像URLResource等等。这里就是根据不同的条件使用不同的策略算法加载资源文件。
6. 观察者模式
例如A和B之间有依赖关系,当A发生变化的时候,B会做出相关的反应。
Spring中的事件驱动模型就是观察者模式的典型应用。
(1)事件角色:EventObject ApplicationEvent
(2)事件监听者角色:ApplicationListener-------onApplicationEvent()
(3)事件发布者角色:ApplicationEventPublisher