Spring IOC设计原理和源码学习-01

整体认识

  1. Spring的目标是使用者感到简单,降低负载和降低框架的入侵性

  2. 怎么实现这两个目标呢?
    方法就是IOC和AOP
    IOC,容器技术方案就是很好的降低了框架的入侵性,让应用不依赖于Spring的api。
    Java EE的服务都被抽象到IOC中,并通过AOP进行有效的封装。由容器来管理这些复杂的依赖关系而不是开发者。
    这里为什么说通过AOP进行有效的封装,是因为将散落在项目各处对象的创建和引用赋值都集中到IOC容器中进行管理,这也是AOP的概念,将某些分散操作集合起来进行封装,增加代码的复用性

  3. 何为依赖关系,通俗一点就是类与类之间的关系,你在某个类中创建了另一个类的实例,那么就建立了两个类之间的关系。有了容器技术,这两者之间的关系都交给了IOC管理,这就是IOC的精华所在。

问题

通过反问来牵引出知识点,学习中不断的发问,不断的抛出问题。

1. IOC是怎样将依赖关系放入容器中的?

各个模块的依赖关系通过简单的配置文件进行描述,也就是说将依赖关系有文件文件的形式记录下来,将依赖信息集中化展示和记录,同时也是配置文件,这样更加明了的了解各个模块之间的依赖关系。

Spring致力于提供优秀方案的集成平台,也就是说很容易的集成第三方组件,而不是紧紧依赖于Spring提供的API依赖。文成POJJO开发时所必须使用的就是IOC,其他api没有这种要求,灵活性好。

在这里插入图片描述
上图是这么说的,依赖注入,但是我不是很理解。调控系统就是IOC容器。
根据字面意思就是,当我们要创建一个需要的类实例时,创建出来的实例与依赖进行绑定,我们就能使用该实例了。显示中应用如下:

 	@Resource
    private PasswordEncoder passwordEncoder;
    @Resource
    private UserService userService;

2. 什么是控制反转? 什么是依赖注入?

依赖注入就是将IOC管理的实体引用于用户创建的实例进行绑定,让用户创建的实例拥有使用价值。

依赖关系管理

  • 通过可读文本完成配置
  • 通过可是化工具对这些信息进行管理和浏览

你可能感兴趣的:(#,spring,spring)