- 使用对象时 , 由主动new创建对象转换为由外部提供对象
- 此过程中对象创建控制权由程序转移到外部 , 被称为控制反转
- 在容器中建立Bean与Bean之间的依赖关系和整个过程 , 被称为依赖注入
- Spring提供了一个容器 , 被称为Ioc容器 , 用来充当IoC思想的外部
- IoC容器负责对象的创建 , 初始化等一系列工作 , 被创建和管理的对象在IoC容器中被称为Bean
// 数据层实现public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...");}}// IoC容器/*包含daoservice两者可以建立连接*/// 业务层实现public class BookServiceImpl implements BookService {private BookDao bookDao;public void save() {bookDao.save();}}目的:充分解耦- IoC:使用IoC容器管理bean
- DI:在IoC容器内将有依赖关系的bean进行关系绑定
- 使用对象不仅可以直接从IoC容器中获取 , 还可以将已获得的Bean之间绑定依赖关系
- IoC负责管理什么:Service和Dao
- 如何被管理的对象告知IoC容器:(配置)
- 被管理的对象交给IoC容器 , 如何获得IoC容器:(接口)
- IoC容器得到之后 , 如何获得Bean:(接口方法)
- 使用Spring所需要导入的坐标:(pom.xml)
- 创建Maven项目 , 在pom.xml中导入坐标
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency></dependencies>- 创建Spring.xml的配置包(applicationContext.xml,导入坐标后xml中更新该XML)
<?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"><!--2.配置bean--><!--bean标签标示配置beanid属性标示给bean起名字class属性表示给bean定义类型(注意需要是实现类)--><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/><bean id="bookService" class="com.itheima.service.impl.BookServiceImpl"/></beans>- 主函数
package com.itheima;import com.itheima.dao.BookDao;import com.itheima.service.BookService;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App2 {public static void main(String[] args) {//3.获取IoC容器ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");//4.获取bean(根据bean配置id获取)//BookDao bookDao = (BookDao) ctx.getBean("bookDao");//bookDao.save();// 注意:需要类型转化BookService bookService = (BookService) ctx.getBean("bookService");bookService.save();}}DI入门首先我们需要明白DI的使用规则:- 基于IoC管理bean
- Service中使用new形式创建Dao对象是否保留:(否)
- Service中需要Dao对象如何进入到Service中:(提供方法)
- Service与Dao之间的关系如何描述:(配置)
- 删除new方法
public class BookServiceImpl implements BookService {//5.删除业务层中使用new的方式创建的dao对象private BookDao bookDao;public void save() {System.out.println("book service save ...");bookDao.save();}}
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 手机指南针怎么看(指南针怎么看方向)
- 指南针怎么看方向(指南针罗盘)
- 指南针怎么看东南西北(指南针怎么看家里方位)
- 星姿妍彩妆是什么牌子的彩妆?
- 飞甩鸡毛是什么牌子?
- 爱琪梅花是什么电视剧中的人物?
- 晒斑和黄褐斑的区别是什么?
- 父母爱情安泰结局是什么?
- 晒黑了怎么快速变白?
- 飞乔是什么牌子?
