quartz/content/Obsidian/后端/spring.md
wangzipai 05fe402966
[PUBLISHER] Merge #10
* PUSH NOTE : spring.md

* PUSH NOTE : 依赖注入.md
2024-10-29 18:23:32 +08:00

3.1 KiB
Raw Blame History

date created date updated tags share link
2024-10-28 18:11 2024-10-29 18:23
spring
后端
true false

概述

介绍

Spring框架是企业使用最多的框架没有之一。Spring是一站式框架称之为一站式框架的原因是Spring可以整合其他框架。 image.png

要学习Spring的内容如下

  • IoC控制反转
  • DI../编程模型及方法/依赖注入
  • Spring AOP面向切面编程技术为Spring事务管理打下基础。
  • Spring Transaction managementSpring事务管理。
  • Spring Web MVC不包含在本课程内后面单独学习简称Spring MVC框架用来简化JavaWEB开发当使用Spring MVC框架后就不用再编写Servlet了。也就不再需要itcast-tools工具中BaseServlet类了。
  • Spring与其他框架整合因为我们只学习过MyBatis框架所以当前我们只学习Spring整合MyBatis框架。

原理

IoC

Spring IoC是Inversion of Control的缩写多数书籍翻译成“控制反转”它是Spring框架的核心。

Spring IOC用于==管理Java对象之间的依赖关系====将对象的创建、组装、管理交给框架来完成==,而不是由开发者手动完成。

IOC不是一种技术只是一种思想一个重要的面向对象编程的法则它能指导我们如何设计出松耦合、更优良的程序。

传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合难于测试有了IoC容器后把创建和查找依赖对象的控制权交给了容器如下图所示

Spring IoC的核心如下

  • 工厂负责对象生命周期的管理spring管理创建与销毁
  • 对象的依赖由工厂完成注入。spring维护对象间关系

Spring提出了对象工厂的概念由Spring工厂来管理对象的生命周期。所谓对象生命周期指的是==从对象的创建一直到对象的销毁都由Spring来管理==。我们无需再自己new对象而是从Spring工厂中获取需要的对象。甚至对象的依赖也由工厂来注入,无需手动注入依赖

Spring工厂是ApplicationContext接口通常我们使用的是AnnotationConfigApplicationContext类。其中Spring工厂内部是通过Map类型来维护。

Key value
“userDao1” UserDao实例
“userService1” UserService实例
... ...
当我们需要获取工厂中的实例时只需要调用工厂的getBean(“id”)即可。
```java
@Test public void test3() {

@Test	public void test3() { 
	AnnotationConfigApplicationContext context = ...		
	UserDao userDao = (UserDao) context.getBean("userDao1");
}

image.png