栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IoC和DI

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IoC和DI

Spring 核心概念

IoC(Inversion of Control)控制反转:
使用对象时,由 new产生对象转换为 由外部提供对象,此过程中对象创建的控制权由程序转移到外部。
Spring技术对IoC思想进行了实现
Spring提供了一个容器,称为 IoC容器,来充当 IoC思想中的 “外部”
IoC容器负责对象的创建,初始化等一系列工作,被创建或管理的对象在 IoC容器中统称为 Bean
DI(Depandency Injection)依赖注入:
在容器中建立 bean 与 bean 之间的依赖关系的整个过程,称为依赖注入

IoC 准备工作

下载 SpringAssistant 插件
pom中导入 spring坐标



    org.springframework
    spring-context
    5.2.10.RELEASE

新建一个 spring 的配置文件

// applicationContext.xml


    
    
    
        
        


进行测试
public class App1 {
    public static void main(String[] args) {
        // 获取 IOC 容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        // 获取 bean 	这里实际上是获取了一个BookDaoImpl对象
        // Object getBean(String var1)
        // 以多态形式赋给了 Object	然后我们自己又强转为 BookDao接口来接收
        // 我们知道 如果用 Object来接收,则 下面是不能执行 save 方法的
        // 但不管怎么样, 类型一值都是 BookDaoImpl
        BookDao bookDao = (BookDao) ctx.getBean("bookDao");
        // 使用
        bookDao.save();
    }
}
DI
public class BookServiceImpl implements BookService{
//    这里不再用 new 去创建
//    private BookDao bookDao1 = new BookDaoImpl();
    private  BookDao bookDao1;

    public  void save() {
        System.out.println("book service save...");
        bookDao1.save();
    }

// 是 IoC 容器在执行
    public void setBookDao1(BookDao bookDao1) {
        this.bookDao1 = bookDao1;
    }
}
        
         
        
        
        
        
    

这样就可以完成 BookServiceImpl 对象中,bookDao1 成员的初始化。

public class App1 {
    public static void main(String[] args) {
        // 获取 IOC 容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        // 获取 bean
        BookService bookService = (BookService) ctx.getBean("bookService");
        // 使用
        bookService.save();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号