Spring4.3x教程之一IOC&DI

Posted arrows

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring4.3x教程之一IOC&DI相关的知识,希望对你有一定的参考价值。

SpringIOC也称为DI,对属性内容的注入可以通过属性的setXXX方法进行也可以通过构造方法进行,当然还可以使用工厂模式进行属性内容的注入。

什么是DI?什么是IOC?

 

DI:Dependency Injection依赖注入

其实一个类中的属性就是依赖

注入就是为该属性赋值

比如:

技术图片
class A{
}
class B{
    //依赖
    private A a;
    //注入
    public void setA(A a){
        this.a=a;
}
}
依赖注入

那么IOC是什么呢?

IOC:Inversion of Control,控制反转

 

都称为IOC容器,就是为我们创建类的对象并且可以为属性赋值

来看看如何使用IOC创建对象:

技术图片
<?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”>
<!-- IOC控制反转的对象可以有多个bean,一个bean就是一个反转对象。
    常用属性:
    id/name:bean的唯一标记,不要重复
    class:要创建的对象的类的全称
    scope:对象的创建方式,取值:
    1、singleton:单例,在整个ApplicationContext对象中就一个,会维护对象的生命周期
    2、protortype:多例,每次调用getBean就新建对象,不会维护对象的生命周期
    3、request:将创建的对象存储在HttpServletRequest的setAttribute中
    4、session:将创建的对象存储在HttpSession中
    5、globalSession:在Prolet环境中,使用,非prolet中等价于session -->
<!-- 对象属性的值的注入方式 -->
<!-- 第一种:通过属性的setXXX方法实现注入 -->
<bean id=”user” class=”cn.code404.pojos.User” scope=”singleton”>
<!-- 为属性赋值,借助setXXX -->
<property name=”id” value=“1”/>
<property name=”username” value=”zhangsan”/>
<property name=”pass” value=”123456”/>
</bean>
</beans>
使用IOC创建对象

使用单元测试进行调用:

技术图片
public class IOCTest{
    //IOC使用之前和之后
    @Test
    public void test1(){
    //IOC之前
    User user=new User();
    Syatem.out.println(user);
    //IOC控制
    //1.Spring上下文对象
    ApplicationContext context=new ClassPathXmlApplicationContext(“applicationContext.xml”);
    //2.获取指定id或name的Bean对象
    User user2=(User) context.getBean(“user”);
    System.out.println(user2);
}
}
Test

 

以上就是spring的入门使用。

以上是关于Spring4.3x教程之一IOC&DI的主要内容,如果未能解决你的问题,请参考以下文章

Spring的IOC&DI

Spring_IoC&DI

3.Spring系列之IOC&DI

Spring IOC&DI

Laravel依赖注入(DI)和Ioc容器

Spring框架知识复习之一