整体认识
-
Spring的目标是使用者感到简单,降低负载和降低框架的入侵性
-
怎么实现这两个目标呢?
方法就是IOC和AOP
IOC,容器技术方案就是很好的降低了框架的入侵性,让应用不依赖于Spring的api。
Java EE的服务都被抽象到IOC中,并通过AOP进行有效的封装。由容器来管理这些复杂的依赖关系而不是开发者。
这里为什么说通过AOP进行有效的封装,是因为将散落在项目各处对象的创建和引用赋值都集中到IOC容器中进行管理,这也是AOP的概念,将某些分散操作集合起来进行封装,增加代码的复用性。 -
何为依赖关系,通俗一点就是类与类之间的关系,你在某个类中创建了另一个类的实例,那么就建立了两个类之间的关系。有了容器技术,这两者之间的关系都交给了IOC管理,这就是IOC的精华所在。
问题
通过反问来牵引出知识点,学习中不断的发问,不断的抛出问题。
1. IOC是怎样将依赖关系放入容器中的?
各个模块的依赖关系通过简单的配置文件进行描述,也就是说将依赖关系有文件文件的形式记录下来,将依赖信息集中化展示和记录,同时也是配置文件,这样更加明了的了解各个模块之间的依赖关系。
Spring致力于提供优秀方案的集成平台,也就是说很容易的集成第三方组件,而不是紧紧依赖于Spring提供的API依赖。文成POJJO开发时所必须使用的就是IOC,其他api没有这种要求,灵活性好。
上图是这么说的,依赖注入,但是我不是很理解。调控系统就是IOC容器。
根据字面意思就是,当我们要创建一个需要的类实例时,创建出来的实例与依赖进行绑定,我们就能使用该实例了。显示中应用如下:
@Resource
private PasswordEncoder passwordEncoder;
@Resource
private UserService userService;
2. 什么是控制反转? 什么是依赖注入?
依赖注入就是将IOC管理的实体引用于用户创建的实例进行绑定,让用户创建的实例拥有使用价值。
依赖关系管理
- 通过可读文本完成配置
- 通过可是化工具对这些信息进行管理和浏览
资源整合
这边文章相当于前面理论知识入门,IOC学习开始的是下面这篇文章: