一、Spring框架 ioc容器的使用

本文介绍了Spring框架的IoC容器概念,包括BeanFactory和ApplicationContext,并通过实例展示了如何创建Spring配置文件、定义Bean、编写接口及其实现类,以及如何在单元测试中使用Spring容器获取并调用Bean。通过这个过程,读者可以理解Spring如何实现对象的控制反转。
摘要由CSDN通过智能技术生成

Spring框架 Ioc容器的使用

所需工具:
IntelliJ IDEA Ultimate 2019.2.4
JDK 1.8.0_221
maven 3.6.3

ioc是指在程序开发中,实例的创建不再由调用者管理,而是由 Spring 容器创建。Spring 容器会负责控制程序之间的关系,而不是由程序代码直接控制,因此,控制权由程序代码转移到了 Spring 容器中,控制权发生了反转,这就是 Spring 的 IoC 思想。

Spring 提供了两种 IoC 容器,分别为 BeanFactory 和 ApplicationContext
在这里插入图片描述

  1. 创建好maven项目导入依赖
 <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.1.11.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.11.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.1.11.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>5.1.11.RELEASE</version>
    </dependency>

.

2.创建spring配置文件 applicationContext.xml

(Spring 的配置文件名称是可以自定义的,通常情况下,都会将配置文件命名为 applicationContext.xml(或者 bean.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" xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
    <!-- 由 Spring容器创建该类的实例对象 -->
    <bean id="userDao" class="com.zdq.ioc.impl.UserDaoImpl" />
</beans>

<!--2~5 行代码是 Spring 的约束配置,第 7 行代码表示在 Spring 容器中创建一个id为userDao的 bean 实例,
其中 id 表示文件中的唯一标识符,class 属性表示指定需要实例化Bean的实全限定类名(包名+类名)-->

3.编写UserDao接口

package com.zdq.ioc;

public interface UserDao {
    public void query();
}

4.创建UserDao接口的实现类

package com.zdq.ioc.impl;

import com.zdq.ioc.UserDao;

public class UserDaoImpl implements UserDao {
    @Override
    public void query() {
        System.out.println("在Spring容器中创建一个id为userDao的bean实例");
    }
}

5.编写单元测试类

package com.test;


import com.zdq.ioc.UserDao;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class OneTest {
    @Test
    public void test() {
        // 定义Spring配置文件的路径
        String xmlPath = "applicationContext.xml";
        // 初始化Spring容器,加载配置文件
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
        // 通过容器获取userDao实例
        UserDao userDao = (UserDao) applicationContext.getBean("userDao");
        // 调用userDao 的 add ()方法
        userDao.query();
    }
}

运行单元测试类,在控制台即可看到UserDao接口实现类的方法打印出的 “在Spring容器中创建一个id为userDao的bean实例”,在程序执行时,对象的创建并不是通过new一个类完成的,而是由 Spring容器管理实现的。这就是Spring IoC容器思想的工作原理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值