Spring笔记(spring 概括以及 IOC)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38801354/article/details/81268365

1 Spring 框架概括

Spring 是一个开源框架,本来是为了解决企业应用开发复杂性而构建的,但现在已经不止用于企业应用了,它是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
为什么是容器框架呢?
Spring 包含并管理应用对象的配置和生命周期,在这个意义上讲,它是一个容器,同时它又支持将简单的组件配置组合成复杂的应用,从这个层面上讲,它是一个框架。

下图是来自 Spring 官网的关于 Spring 的介绍:

  • 底层是单元测试
  • Core Container:表示的是它的核心容器,其中包括:
    • Bean 容器
    • Context 上下文
    • Core 核心的包与工具
    • SpEL Spring的表达式
  • 在前者之上构成了 Spring 的功能组件
  • 最上层就是 Spring 的具体使用
    这里写图片描述

2 控制反转(IoC)

控制反转的实质就是:控制权的转移,即 应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。 IOC 的整个目的就是:创建对象并且组装对象之间的关系,即 IOC 容器在初始化的时候会创建一系列的对象,同时它能把对象的依赖关系通过 DI(依赖注入) 的方式组织起来(所谓的依赖注入就是 IOC 容器在运行期间,动态地将某种依赖关系注入到对象之中)。

2.1 bean 容器的初始化

bean 容器的初始化基础来源自两个包:org.springframework.beans 以及 org.spring.context

  • org.springframework.beans 包主要是 BeanFactory 这个类及其子类,这个类提供配置结构和基本功能,加载并初始化 Bean
  • org.spring.context 包主要是 ApplicationContext 以及他的实现类,它的主要作用是保存了 Bean 的对象,并在 Spring 中广泛使用,即起类似于容器的作用。

初始化 ApplicationContext 容器有三种形式:

  • new FileSystemXMLApplicationContext(path):本地文件,此时需要提供完整路径,,如 F://workplace
  • new ClassPathXMLApplicationContext(path):相对路径,如:classpath:spring-ico.xml
  • new webXMLApplicationContext:web应用

2.2 Spring 的注入

Spring 的注入是指 启动 IOC 容器加载 bean 配置,完成对变量的赋值行为,常用的注入方式有两种:

  • 设值注入:对应的属性变量必须要有 setter 方法,spring 赋值的时候会自动地调用 setter 方法,当使用 XML 配置方式时,使用 <property>,通过赋值它的 name 以及 ref 属性来实现 bean 赋值,其中 name 属性要与赋值的属性变量名一致
  • 构造注入:使用构造函数参数注入,其中当使用 XML 配置方式时与设值注入类似,构造函数中的参数名字与 <construct-arg> 标签中的 name 属性必须相同

猜你喜欢

转载自blog.csdn.net/qq_38801354/article/details/81268365