关于spring控制反转和依赖注入的随笔,及测试小demo

3 篇文章 0 订阅
1 篇文章 0 订阅
本文探讨了Spring框架中的控制反转(IoC)和依赖注入(DI)概念,通过实例演示如何在Spring配置文件中实现,并展示了如何在代码中利用Spring的ApplicationContext进行对象注入。
摘要由CSDN通过智能技术生成

关于spring控制反转和依赖注入的随笔,及测试小demo

  1. 什么是控制反转(Ioc),什么是依赖注入(DI)有什么区别于联系

1)IoC控制反转:传统的创建对象的方法是用new关键字主动创建对象,而spring则使用IoC外部容器创建对象,这种创建对象的的方式由主动行为变成被动行为的方式被称为控制反转。

 

2)DI依赖注入:IoC外部容器在主动运行期间主动将程序所需要的外部容器注入进来

 

3)IoC控制反转和DI依赖注入在某种角度上描述的是一种东西,IoC是从对象的角度描述容器,DI是从容器的角度在程序运行期间主动的为应用程序注入外部资源(可以是外部对象,也可以是外部文件)

例如,对象a依赖对象b,或者应用程序运行到某一节点的时候需要创建对象b,或者引用已存在的对象b,Spring的IoC容器自动的注入对象所需要的外部资源,不需要再创建对象b

 

  1. Ioc控制反转小demo

appliactionContext.xml配置文件,(建议放在resourse中或者clasess文件夹中)

<?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-4.3.xsd">

                 <!-- 将指定类配置给spring,spring创建其对象的实例 -->

                 

      <!-- 表示在容器中创建一个idUserDaoBean实例 ,其中class属性用于指定需求实例化的Bean-->           

      <bean id="userDao" class="org.lyl.chapter001.UserDaoImpl"></bean>

      <!-- 添加一个idUserServicebean -->

      <bean id="userService" class="org.lyl.chapter001.UserServiceImpl">

        <!-- nameUserDaoBean实例 注入userService实例中-->

        <property name="UserDao" ref="userDao"></property>

      </bean>                                

</beans>

Dao方法

public interface UserDao {

    //定义login方法

    public void login() ;

}

Dao的实现类

public class UserDaoImpl implements UserDao{

 

    @Override

    public void login() {

       System.out.println("UserDao login");      

    }

}

创建一个Ioc类来测试控制反转

public class IoC {

    public static void main(String[] args) {

       //1.初始化Spring容器,加载配置文件     

       ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");              

       //2.通过容器UserDao获得实例

       UserDao dao=(UserDao)applicationContext.getBean("userDao");

       //3.调用实例中的login方法

       dao.login();      

    }

}

运行结果如下

这里调用UserDao的login方法时没有使用new关键字创建对象而是获取Spring的Ioc容器创建好的Bean实例。

小demo需要用到的jar包如下,建议使用maven的pom引入jar包坐标,直接引入jar包可以报找不到配置文件applicationContext.xml编译错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值