经典白学系列
黑马程序员2022最新SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术_哔哩哔哩_bilibili
目录
3.3.2:新建applicationContext.xml,并配置bean
1. 前言
IoC是 SSM框架 -> Spring家族 -> SpringFramework 的控制反转功能
· Ioc思想:“控制反转”:使用对象时,不由new产生对象,由外部创建。创建对象的控制权由程序转移到外部
· Spring提供了一个容器,称为Ioc容器,用来充当IoC思想的外部。
· IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean。
2. 思路分析
2.1 管理什么? -> service 与 Dao
2.2 如何将被管理的对象告知IoC容器? -> 写个配置文件
2.3 如何获取到IoC容器 -> 会有一个接口
2.4 得到容器后,如何从容器里面获取bean(对象)? -> 接口方法(接口里面有操作)
2.5 使用Spring导入哪些坐标? -> pom.xml
3. 代码实战
3.1 创建项目
file -> new -> project -> maven
然后创建和第三张图一样顺序的包、类
3.2 未使用ioc的代码
3.3 使用IoC代码
在3.2基础上更改
3.3.1导包
在pom.xml下新增依赖
3.3.2:新建applicationContext.xml,并配置bean
使用的是社区版是创建不了这个文件的,即使是添加了依赖,我的解决是去下载一个2020年的idea,用免费试用30天来运行。第二个链接为下载地址。灵感来源于第一个链接。有查看到教育账号邮箱可以试用一年,可以尝试。
idea 30天_zhaowei512878722的博客-优快云博客_idea怎么试用30天
Other Versions - IntelliJ IDEA (jetbrains.com)
<?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,对应版本为5.2.10.RELEASE-->
<!-- 2.配置bean-->
<!-- bean标签表示配置bean-->
<!-- id属性表示给bean起名字-->
<!-- class属性表示给bean定义类型-->
<bean id="bookDao" class="com.itheima.Dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.itheima.Service.impl.BookServiceImpl"/>
</beans>
3.3.3测试
新建一个test类,测试使用容器拿到
package com.itheima;
import com.itheima.Dao.BookDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class APPtest {
public static void main(String[] args) {
//3.获取IoC容器
//ApplicationContext是一个接口,不能创建对象,需要new一个他的实现类:ClassPathXmlApplicationContext,把配置文件告诉这个类,用来获取
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//4.获取bean
//括号内是在applicationContext.xml中配置的bean的id。拿到的是一个对象,要把前面的变量给定义出来
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
//5.拿到对象后调用
bookDao.save();
}
}