注:本博客用于自学,如有错误,敬请指正。
一、首先要了解的概念
IOC是一种思想:将创建、初始化对象的控制权交给IOC容器
IOC容器:用来装对象的容器
Bean:IOC容器中装的对象
DI:将IOC容器种Bean之间的依赖关系进行绑定
二、小案例
(一)步骤
1.创建项目
2.创建类
3.导入坐标
4.创建spring配置文件(将被管理的对象告知IOC容器)
5.获取IOC容器 (通过接口)
6.获取Bean(通过接口方法)
(三)具体实现
1.项目结构
2.创建类
userdao
public interface UserDao {
public void save();
}
UserDaoImpl
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("userdao save.........");
}
}
UserService
public interface UserService {
public void save();
}
UserServiceImpl
public class UserServiceImpl implements UserService {
// 在IOC容器中配置依赖关系时,name的内容要填这个名称
private UserDao userDao;
public void save() {
userDao.save();
System.out.println("userservice save.........");
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
3导入坐标
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>spring5</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
</project>
4.编写配置文件
<?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">
<!-- 通过配置文件的方式配置IOC容器-->
<!-- 配置Bean bean就是IOC容器管理的对象-->
<!-- 注意:这里要配置的是实现类,因为还要创建对象-->
<bean id="userDao" class="com.xs.dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="com.xs.service.impl.UserServiceImpl">
<!--
property 配置属性
name 配置类中哪一个具体的属性
ref 参照哪个Bean
-->
<property name="userDao" ref="userDao"></property>
</bean>
</beans>
5.获取IOC容器以及Bean
package com.xs;
import com.xs.dao.UserDao;
import com.xs.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Author Administrator
* @Date 2023/1/10 21:18
*/
public class App {
public static void main(String[] args){
// 获取IOC容器 通过接口
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 获取Bean 通过接口方法
// UserDao userDao = (UserDao) context.getBean("userDao");
// userDao.save();
UserService userService = (UserService) context.getBean("userService");
userService.save();
}
}