spring笔记--依赖注入之针对不同类型变量的几种注入方式

  控制反转和依赖注入讲的都是一个概念,只不过是站在了不同的角度,所谓的依赖注入:

  是指在运行期,由外部容器动态地将依赖对象注入到组件中。当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它。所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bean对象。这种现象就称作控制反转,即应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。

  下面介绍各种类型属性的注入方式:

  新建实体类Student:

public class Student {

    //基本数据类型的变量
    private String name;
    //对象类型的变量,Address类代码省略
    private Address address;
    //数组类型的变量
    private String[] hobby;
    //list类型的变量
    private List<String> books;
    //Map类型的变量
    private Map<String,String> cards;
    //set类型的变量
    private Set<String> movies;
    //Properties类型的变量
    private Properties info;
        public void show(){
        System.out.println("name:"+name+"地址:"+address.getAddr());
        System.out.println("爱好有:");
        for(int i=0;i<hobby.length;i++){
            System.out.println(hobby[i]);
        }
        System.out.println("喜欢的书籍:"+books);
        System.out.println("拥有的银行卡"+cards);
        System.out.println("喜欢的电影"+movies);
        System.out.println("身份信息:"+info);
    }
//set方法省略
}

配置文件beans.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
     <bean id="address" class="com.wang.entity.Address">
         <property name="addr" value="青岛"></property>
     </bean>
    <bean id="student" class="com.wang.entity.Student">
        <!--配置基本数据类型  -->
        <property name="name" value="张三丰"></property>
        <!--配置对象类型  -->
        <property name="address" ref="address"></property>
        <!--配置数组类型  -->
        <property name="hobby" >
            <array>
                <value>吃饭</value>
                <value>睡觉</value>
                <value>打豆豆</value>
            </array>
        </property>
        <!--配置list类型  -->
        <property name="books">
            <list>
                <value>时光旅行者的妻子</value>
                <value>白发魔女传</value>
                <value>谁的青春不迷茫</value>
            </list>
        </property>
        <!--配置map类型  -->
        <property name="cards">
            <map>
                <entry key="农行卡" value="62284832128534"></entry>
                <entry key="建行卡" value="62284867867984"></entry>
            </map>
        </property>
        <!--配置set类型  -->
        <property name="movies">
            <set>
                <value>疯狂动物城</value>
                <value>叶问3</value>
                <value>功夫熊猫</value>
            </set>
        </property>      <!--配置properties类型-->
        <property name="info">
            <props>
                <prop key="学号">20124280</prop>
                <prop key="班级">三年二班</prop>
                <prop key="性别">不详</prop>
            </props>
        </property>
    </bean>
</beans>

测试代码:

@Test
    public void test1(){
        ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
        Student s=(Student)context.getBean(Student.class);
        s.show();
    }

打印结果:

name:张三丰地址:青岛
爱好有:
吃饭
睡觉
打豆豆
喜欢的书籍:[时光旅行者的妻子, 白发魔女传, 谁的青春不迷茫]
拥有的银行卡{农行卡=62284832128534, 建行卡=62284867867984}
喜欢的电影[疯狂动物城, 叶问3, 功夫熊猫]
身份信息:{学号=20124280, 性别=不详, 班级=三年二班}

时间: 2024-08-25 23:37:59

spring笔记--依赖注入之针对不同类型变量的几种注入方式的相关文章

依赖注入之针对不同类型变量的几种注入方式

控制反转和依赖注入讲的都是一个概念,只不过是站在了不同的角度,所谓的依赖注入: 是指在运行期,由外部容器动态地将依赖对象注入到组件中.当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它.所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bean对象.这种现象就称作控制反转,即应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转. 下面介绍各种类型属性的注入方式:

第二十七天 春之细雨润物于无形 —Spring的依赖注入

6月11日,晴."夏条绿已密,朱萼缀明鲜.炎炎日正午,灼灼火俱燃." IT人习惯把具体的事物加工成的形状一致的类,正是这样的一致,加上合适的规范,才能彰显对象筋道的牙感和bean清香的味道.Spring比谁都清楚OO的奥妙,让组件之间的依赖关系由容器在运行时期决定,称作依赖注入(Dependency Injection). 下面用一通俗的例子,一探依赖注入奥妙. 设计模式中的一个原则:针对接口编程,不要针对实现编程. 一.设计两个接口: (1)奶制品接口-MilkProductInte

Spring框架3:spring的依赖注入

本系列笔记均是对b站教程https://www.bilibili.com/video/av47952931 的学习笔记,非本人原创 spring的依赖注入(DI) 什么是依赖注入: 作者:Angry Bugs 链接:https://www.zhihu.com/question/32108444/answer/581948457 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 看了几个高赞答案,感觉说得还是太啰嗦了.依赖注入听起来好像很复杂,但是实际上炒鸡简单,一

spring中依赖注入方式总结

Spring中依赖注入的四种方式 在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的setter方法注入 首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性.例如:为UserBiz类注入UserDAO,同时为UserBiz注入基本数据类型String,那么这时,就要为UserDAO对象和String类型设置se

Spring笔记(二):Ioc 之注入与装配

一.Spring依赖注入的原理 二.依赖注入的实现 (一)对象的注入 1.简单属性注入 1)源代码 package main.java.com.spring.ioc.base.dao.impl; import main.java.com.spring.ioc.base.dao.PersonDao; /** * * PersonDiDaoImpl * @title * @desc * @author SAM-SHO * @Dec 28, 2014 */ public class PersonDiD

(spring-第3回)spring的依赖注入-属性、构造函数、工厂方法等的注入

Spring要把xml配置中bean的属性实例化为具体的bean,"依赖注入"是关卡.所谓的"依赖注入",就是把应用程序对bean的属性依赖都注入到spring容器中,由spring容器实例化bean然后交给程序员.spring的依赖注入有属性注入.构造函数注入.工厂方法注入等多种方式,下面用几个简单的栗子来一一道来. 一.首先是属性注入: 代码001 1 <?xml version="1.0" encoding="UTF-8&q

Spring各种依赖注入对比

转自:http://www.jb51.net/article/81741.htm(谢谢楼主分享) 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.Service.Controller.Repository.Component. Autowired是自动注入,自动从spring的上下文找到合适的bean来注入 Resource用来指定名称注入 Qualifier和Autowired配合使用,指定bean的名称 Se

Spring的依赖注入(DI)三种方式

Spring依赖注入(DI)的三种方式,分别为: 1.  接口注入 2.  Setter方法注入 3.  构造方法注入 下面介绍一下这三种依赖注入在Spring中是怎么样实现的. 首先我们需要以下几个类: 接口 Logic.java 接口实现类 LogicImpl.java 一个处理类 LoginAction.java 还有一个测试类 TestMain.java Logic.java如下: package com.spring.test.di; public interface Logic {

spring的依赖注入的最常见的两种方法

1 package com.lsz.spring.action; 2 3 public class User { 4 /** 5 * set注入 6 */ 7 private String username; 8 public void setUsername(String username) { 9 this.username=username; 10 } 11 public String getUsername() { 12 return username; 13 } 14 /* 15 <b