简单说,就是 Spring 设计了一个 核心容器 Core Container,这里头主要就是管理 Bean 生命周期,然后为了服务这些业务 Bean 北遴选引入了 Core , Context , SpEL 等工具到核心容器中。然后在核心容器基础上,又为了把更多的能力集成进来,例如为了拓展 数据访问 能力加入了 JDBC 、ORM 、OXM 、JMS 、Transactions 等,为了拓展 Web 能力加入了 WebSocket 、Servlet、Web、Portlet 等,其中为了把 RequestMapping 或 Servlet 等这些使用集成到业务 Bean 上,引入了 AOP ,包括还有引入(最终是提供) Aspects、Instrumentation、Messageing 等增强方式。

Bean 之间通过接口协议互相串联起来的,湖北遴选至于每个接口有多少个实现类,那都不会有任何影响,Bean 之间只保留单点通道,通过接口相互隔离,关系都交给 Spring 管理,这样就避免了实现类和实现类之间出现一些耦合,就算方法增减了、引用变更了也不至于互相污染。

  1. Bean管理: 解耦Bean关系。理解为内核,从 Bean 的定义、创建、管理等,这是业务Bean。

  2. 功能增强: 解耦功能、声明式简化。遴选理解为外延,在业务Bean基础上,需要访库等能力,那就是功能增强。

基本体现的就是两个核心特性,一个 解耦、一个 简化

作者:|幕布斯3223999|,原文链接: http://www.imooc.com/article/325287

文章推荐

创建nodejs项目并接入mysql,完成用户相关的增删改查的详细...

RocketMQ的简单使用

Claude:除ChatGPT外的另一种选择

Mybatis-Plus如何自定义SQL注入器?

深度学习之PyTorch实战(5)——对CrossEntropyLoss损失函数的...

干掉复杂的工具类,国产Java工具类库 Hutool 很香!

Redis分布式Session和普通的cookie session有什么区别?

前端设计模式——模板方法模式

设计模式(二十一)----行为型模式之状态模式

nacos实现Java和.NetCore的服务注册和调用

linux-ext4格式文件误删除,该如何恢复?

浅析kubernetes中client-go Informer