You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spring 时代我们一般通过 XML 文件来配置 Bean,后来开发人员觉得 XML 文件来配置不太好,于是 SpringBoot 注解配置就慢慢开始流行起来。
131
+
### IoC 解决了什么问题?
131
132
132
-
相关阅读:
133
+
IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相关资源。这样有什么好处呢?
133
134
134
-
-[IoC 源码阅读](https://javadoop.com/post/spring-ioc)
135
-
-[IoC & AOP 详解(快速搞懂)](./ioc-and-aop.md)
135
+
1. 对象之间的耦合度或者说依赖程度降低;
136
+
2. 资源变的容易管理;比如你用 Spring 容器提供的话很容易就可以实现一个单例。
137
+
138
+
例如:现有一个针对 User 的操作,利用 Service 和 Dao 两层结构进行开发
139
+
140
+
在没有使用 IoC 思想的情况下,Service 层想要使用 Dao 层的具体实现的话,需要通过 new 关键字在`UserServiceImpl` 中手动 new 出 `IUserDao` 的具体实现类 `UserDaoImpl`(不能直接 new 接口类)。
141
+
142
+
很完美,这种方式也是可以实现的,但是我们想象一下如下场景:
143
+
144
+
开发过程中突然接到一个新的需求,针对`IUserDao` 接口开发出另一个具体实现类。因为 Server 层依赖了`IUserDao`的具体实现,所以我们需要修改`UserServiceImpl`中 new 的对象。如果只有一个类引用了`IUserDao`的具体实现,可能觉得还好,修改起来也不是很费力气,但是如果有许许多多的地方都引用了`IUserDao`的具体实现的话,一旦需要更换`IUserDao` 的实现方式,那修改起来将会非常的头疼。
0 commit comments