Spring 学习笔记 (二)核心概念

优点:

  1. 非侵入式设计:可以使应用程序对特定框架的依赖最小化
  2. 解耦合: 将对象的创建和依赖关系维护工作交给容器,降低组件之间的耦合性
  3. 支持 AOP:可以将安全、事务、日志等通用任务进行集中处理,提高程序服用性
  4. 支持声明式事务处理: 通过配置既可完成对事务的管理,无需手动编程实现
  5. 方便测试:集成 JUnit 及 TestNG
  6. 集成各种优秀框架:不重复造轮子,直接集成支持优秀开源框架
  7. 封装 JavaEE Api:如 JDBC、JavaMail,降低使用难度

核心容器:

  • BeanFactory:基础类型 IoC 容器,在 org.springframework.beans 包中,不常用
  • ApplicationContext:BeanFactory 子接口,称为“应用上下文”,由 org.springframework.context.ApplicationContext 接口定义,通常通过 2 种方法创建此接口实例
    • ClassPathXmlApplicationContext:从类路径 classPath 中寻找指定的 XML 配置文件,找到并装载完成 ApplicationContext 的实例化工作。(常用)
    • FileSystemXmlApplicationContext:从指定的文件系统绝对路径中寻找指定的 XML 配置文件,找到并装载完成 ApplicationContext 的实例化工作。 (不常用)

核心概念:

  • IoC:IoC 的全称是 Inversion of Control,中文名称为控制反转。控制反转就是指在使用 Spring 框架之后,对象的实例不再由调用者来创建,而是由 Spring 容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了 Spring 容器,控制权发生了反转。
  • DI:DI 的全称是 Dependency Injection,中文称之为依赖注入。它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。从 Spring 容器的角度来看,Spring 容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是 Spring 的依赖注入。

实现方式:

  1. 设值注入:属性 setting 方法注入,指 IoC 容器使用 setter 方法注入被依赖的实例。通过调用无参构造器或无参静态工厂方法实例化 Bean 后,再调用 Bean 的 setter 方法,即可实现基于 setting 方法的依赖注入。
    • 必须提供一个无参构造方法(默认即可,如果写了带参数的构造方法,必须也写一个无参构造方法)
    • 必须要为属性提供 setter 方法实现。
    • 为属性和 setter 访问器命名时,一定要注意遵循 JavaBean 的命名规范。
  2. 构造注入:构造方法注入,指 IoC 容器使用构造方法注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。
    • 必须要为类提供对应参数属性值的构造实现。

参考资料:

  1. https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-basics
posted @ 2021-03-13 23:22  Uyiefiz  阅读(137)  评论(0)    收藏  举报