目录
[1.1 控制反转是什么?](#1.1 控制反转是什么?)
[1.2 什么是IOC容器?](#1.2 什么是IOC容器?)
[1.3 IOC容器的作用](#1.3 IOC容器的作用)
[1.4 IOC容器存放的是什么?](#1.4 IOC容器存放的是什么?)
[2.1 依赖注入是什么?](#2.1 依赖注入是什么?)
[2.2 依赖注入的作用](#2.2 依赖注入的作用)
[3.2 配置Maven中的settings.xml文件](#3.2 配置Maven中的settings.xml文件)
[3.2.1 配置本地库](#3.2.1 配置本地库)
[3.2.2 配置中央仓库](#3.2.2 配置中央仓库)
[3.2.3 配置JDK版本](#3.2.3 配置JDK版本)
[3.3 配置Maven的环境变量](#3.3 配置Maven的环境变量)
[3.3.1 打开环境变量](#3.3.1 打开环境变量)
[3.3.2 配置系统变量](#3.3.2 配置系统变量)
[3.3.3 配置path中的环境变量](#3.3.3 配置path中的环境变量)
[3.4 验证Maven安装和配置是否成功 ·](#3.4 验证Maven安装和配置是否成功 ·)
[3.6 添加Spring的依赖jar包](#3.6 添加Spring的依赖jar包)
[3.7 完成IOC容器中bean的配置](#3.7 完成IOC容器中bean的配置)
[3.8获取IOC容器 ,调用方法](#3.8获取IOC容器 ,调用方法)
前言:初识Spring-CSDN博客
一、IOC
IOC(Inversion of Control)控制反转
1.1 控制反转是什么?
使用对象时,由主动new产生对象转换为由外部提供对象,在这个过程中,对象创建控制权由程序转移到外部
1.2 什么是IOC容器?
Spring创建了一个容器用来存放所创建的对象,这个容器就叫做IOC容器
1.3 IOC容器的作用
**对象管理:**IOC容器负责管理组件的生命周期,包括创建、配置和销毁等过程
**控制反转:**IOC容器通过将对象的创建和依赖关系的管理责任交给第三方容器,实现了控制反转的思想,降低了程序的耦合度,提高了程序的扩展性
1.4 IOC容器存放的是什么?
被创建和管理的对象在IOC容器中统称为Bean,IOC容器存放的就是一个个Bean对象
二、DI
DI(Dependency Injection)依赖注入
2.1 依赖注入是什么?
在容器中建立Bean与Bean之间的依赖关系的整个过程,被称为依赖注入
2.2 依赖注入的作用
**充分解耦:**依赖注入是IOC的一种具体实现方式,它通过配置文件将对象依赖的属性注入到对象中,从而解耦对象之间的依赖关系。
三、IOC案例实现
3.1下载Maven
网址:Maven -- Download Apache Maven

**注意:**IDEA版本和Maven版本可能出现不兼容问题,下载兼容版本即可(可以参照下表)
IDEA | Maven |
---|---|
IDEA 2018 | 兼容Maven 3.6.1及之前所有版本 |
IDEA 2020 | 兼容Maven 3.6.3及之前所有版本 |
IDEA 2021 | 兼容Maven 3.8.1及之前的所有版本 |
IDEA 2022 | 兼容Maven 3.8.1及之前的所有版本 |
下载其他版本方法:

3.2 配置Maven中的settings.xml文件

3.2.1 配置本地库
**原因:**Maven初始化后,在C盘会出现.m2文件,就是存放下载下来的jar包的。后面下载的文件过多,会导致C盘空间不足。建议在其他盘符新建一个文件夹

代码:
html
<localRepository>D:\Maven\repository</localRepository>
3.2.2 配置中央仓库
原因: 因为我们使用的jar包不存在时,会从中央仓库来下载。但是因为是在外网,所以下载速度可能很慢。因此我们要配置镜像源 ,使用阿里云镜像源
setting.xml文件位置:

代码:直接复制即可
html
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
3.2.3 配置JDK版本
**原因:**以后创建项目时,可以直接默认你配置的JDK

代码:
html
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
3.3 配置Maven的环境变量
3.3.1 打开环境变量

3.3.2 配置系统变量

3.3.3 配置path中的环境变量

3.4 验证Maven安装和配置是否成功 ·
方式: win+R 输入 cmd 回车 在命令提示符中输出 mvn

查看Maven版本 : win+R 输入 cmd 回车 在命令提示符中输出 mvn -version

3.5创建maven项目
新建项目,选择Maven,一步步操作即可。
项目结构:

3.6 添加Spring的依赖jar包
在pom.xml输入:
html
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
3.7 完成IOC容器中bean的配置
1.新建配置文件 文件名:applicationContext.xml

2.代码:
html
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 1. 导入Spring的坐标spring-context-->
<!-- 2. 配置bean-->
<bean id="bookDao" class = "com.zhang.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.zhang.service.impl.BookServiceImpl"/>
</beans>
3.8获取IOC容器 ,调用方法
java
public static void main(String[] args) {
//获取IOC容器 applicationContext.xml为配置bean
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean id = "bookDao"
BookDao bookDao = (BookDao) ac.getBean("bookDao");
bookDao.sava();//book dao sava
//获取bean id= "bookService"
BookService bookService = (BookService) ac.getBean("bookService");
bookService.sava();//book service sava
// book dao sava
}
四、DI案例实现
4.1配置bean的依赖关系
html
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<!-- 1. 导入Spring的坐标spring-context-->
<!-- 2. 配置bean-->
<bean id="bookDao" class = "com.zhang.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.zhang.service.impl.BookServiceImpl">
<!-- 配置Dao和Service的关系-->
<!-- name表示具体配置的属性-->
<!-- ref 是参照那个属性-->
<property name="bookDao" ref="bookDao"/>
</bean>
</beans>