zoukankan      html  css  js  c++  java
  • 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的入门使用。

  • 相关阅读:
    归并排序(Merge Sort)
    AtCoder AGC035D Add and Remove (状压DP)
    AtCoder AGC034D Manhattan Max Matching (费用流)
    AtCoder AGC033F Adding Edges (图论)
    AtCoder AGC031F Walk on Graph (图论、数论)
    AtCoder AGC031E Snuke the Phantom Thief (费用流)
    AtCoder AGC029F Construction of a Tree (二分图匹配)
    AtCoder AGC029E Wandering TKHS
    AtCoder AGC039F Min Product Sum (容斥原理、组合计数、DP)
    AtCoder AGC035E Develop (DP、图论、计数)
  • 原文地址:https://www.cnblogs.com/arrows/p/10399981.html
Copyright © 2011-2022 走看看