IOC 控制反转,对象的创建控制权交给spring核心容器 大白话:由IOC容器替我们new对象
DI 依赖注入,实现功能,属性的值由spring容器主动提供 大白话:给成员变量赋值
功能:解读代码耦合性太强的弊端,
实现步骤:
在maven工程环境下:
1.【第一步】在pom文件中导入Spring坐标
<dependencies>
<!--导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
【第二步】定义Spring管理的类(接口)
Student 和 User类来测试IOC实例化对象
A和B类用来测试DI依赖注入
【第三步】创建Spring配置文件,配置对应类作为Spring管理的bean对象
定义applicationContext.xml配置文件,通过配置文件完成bean的实例化和依赖注入
实例化一个对象:
<bean></bean>标签:实例化bean,中间可以依赖注入,主要有由id和class等属性
<property>标签:setter依赖注入
<constructor-arg>构造器依赖注入 name:属性:你要赋值的变量 value:赋值 ref:引用数据类型注入的参照,如bean类A注入的引用数据类型为b bean类B标签的id 【第四步】初始化IOC容器(Spring核心容器/Spring容器),通过容器获取bean对象
public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); //通过id从IOC接口(映射到配置文件)中获取到bean这个对象 Student student = (Student) context.getBean("student"); student.method(); A a = (A) context.getBean("a");//参数为该bean标签的id a.method(); }