二、spring IOC之DI注入(注入基本类型,复杂类型)

标签: DI spring IOC 基本类型 复杂类型
6人阅读 评论(1) 收藏 举报
分类:

一、基本类型的注入

构造注入:
1.构造方法注入 :该实体类必须有对应构造方法

        <!-- 使用构造方式注入数据 
            constructor-arg: 对构造方法中的参数赋值
                    1index : 通过构造方法中参数的索引定位参数
                    2)name  : 通过构造方法中参数的名称定位参数
                    3type  : 通过构造方法中参数类型定位
                    ** 以上三个参数,是用来定位构造方法中参数的
                    4)value :对基本数据类型参数赋值
                    5)ref       :被spring管理的其他bean对象
                    ** 以上两个参数,是对构造方法中参数赋值的
        -->
        <constructor-arg name="gameName" value="王者荣耀" ></constructor-arg>

2.set方法注入
通过property标签 ,该实体类必须有对应set方法

 <!-- 创建对象交给spring容器管理 -->
             <bean id="accountService" class="cn.itcast.service.impl.AccountServiceImpl">
                 <!-- 创建对象交给spring容器管理 -->
             <bean id="accountService" class="cn.itcast.service.impl.AccountServiceImpl">
                <!-- 通过set方式注入数据 
                    property 
                        1)name : set方法后面的部分,首字母小写
                        2)value:注入基本类型数据
                        3)ref:注入被spring管理的其他bean对象
                        4)value-ref:注入复杂类型

                    对于property,调用set方法进行赋值
                        name            gameName
                        methodName      setGameName
                        反射调用
                -->
                <property name="gameName"  value="绝地求生"></property>
                <property name="age" value="15"></property>
             </bean>

二、复杂类型注入

1复杂类型之(集合):
数组类型: list set array 结合 其子标签value

<!-- 创建对象交给spring容器管理 -->
     <bean id="accountService" class="cn.it.service.impl.AccountServiceImpl">
        <property name="gameNames">
            <!-- 
                可以通过array结合value对象数组类型的数据赋值
                list结合value
                set结合value
             -->
<!--            <array>
                <value>王者荣耀</value>
                <value>LOL</value>
            </array> -->
            <set>
                <value>王者荣耀</value>
                <value>LOL</value>
            </set>
        </property>
     </bean>

2注入复杂类型之key-value类型(map,property):

key-value类型:

  1. map结合其子标签 entry 默认创建linkedHashSet存储

  2. props结合其子标签 prop 默认创建property

<bean id="accountService" class="cn.it.service.impl.AccountServiceImpl">
        <!-- 对于注入key value类型的数据
            可以使用map结合entry注入
            props 结合 prop 注入
        <property name="properties">
<!--        <map>
                <entry key="王者荣耀" value="12"></entry>
                <entry key="绝地求生" value="15"></entry>
            </map> -->
            <props>
                <prop key="王者荣耀">12</prop>
                <prop key="绝地求生">15</prop>
            </props>
        </property>
     </bean>

3.嵌套方式注入 通过value-ref属性

<?xml version="1.0" encoding="UTF-8"?>
<!-- 导入约束 :xsd -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util.xsd
        ">
     <!-- 创建对象交给spring容器管理 -->
     <bean id="accountService" class="cn.itcast.service.impl.AccountServiceImpl" >
        <!-- 对于注入key value类型的数据
            可以使用map结合entry注入
            props 结合 prop 注入
         -->
        <property name="maps">
            <map>
                <entry key="王者荣耀" value-ref="mapList"></entry>
                <entry key="绝地求生" value-ref="mapList"></entry>
            </map>
        </property>
     </bean>

     <!-- 创建list集合 -->
     <util:list id="mapList">
        <value>1</value>
        <value>2</value>
        <value>3</value>
     </util:list>


</beans>
查看评论

spring四种依赖注入方式 ( 依赖注入DI+ 控制反转IOC的原理)

平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程...
  • baoendemao
  • baoendemao
  • 2014-04-28 13:06:23
  • 2012

关于Spring IOC (DI-依赖注入)你需要知道的一切

【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自...
  • javazejian
  • javazejian
  • 2017-01-19 16:46:27
  • 27755

深入浅出spring IOC中三种依赖注入方式

深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖...
  • u011637069
  • u011637069
  • 2016-07-19 19:53:24
  • 39761

spring复杂类型属性注入

//创建实体类package com.sq.service; import java.util.Arrays; import java.util.List; import java.util.Map...
  • m0_37983376
  • m0_37983376
  • 2017-06-26 10:39:48
  • 363

Spring-IoC的注入方式及注入不同的数据类型

关于Spring-IoC的简单使用参考: Spring-IoC的简单使用1、通过set方法注入不同数据类型(推荐使用的方式) 测试类代码(set方式注入的属性一定要加set方法) /**通过set方...
  • qq_32588349
  • qq_32588349
  • 2016-06-01 10:59:06
  • 3460

Spring、基本类型属性和集合类型属性的注入

Spring 还可以对基本属性和集合类型属性进行注入: public class PersonServiceImpl implements PersonIService { private Stri...
  • work201003
  • work201003
  • 2015-11-10 11:34:51
  • 1256

SpringBoot学习 (二)— 依赖注入

学习一下SpringBoot 之依赖注入 依赖注入就是Spring IoC容器创建bean,IntelliJ IDEA+maven+jdk8.0来整体学习一下SpringBoot,这里不讲解mave...
  • qq_34677587
  • qq_34677587
  • 2017-03-11 16:23:46
  • 639

Helloworld之Spring依赖注入/控制反转(DI/IoC)版

Helloworld之Spring依赖注入/控制反转(DI/IoC)版 作者:雨水, 日期:2014-10-29 摘要:本文主要用于培训初学者理解Spring中的依赖注入的基本概念. ...
  • gobitan
  • gobitan
  • 2014-10-29 11:47:14
  • 1997

Spring_Spring_教程8_注入_复杂类型的注入

对于程序员来说,掌握多种语言是基本的技能。   我们这里做了一个小例子,程序员们是一个Bean实例,而掌握的编程语言则是放入一个集合类型中进行注入。   简单的来说:   List是一种按照序号...
  • u010003835
  • u010003835
  • 2016-05-15 16:34:46
  • 877

SpringDI.rar

  • 2016年05月10日 21:34
  • 5.32MB
  • 下载
    个人资料
    等级:
    访问量: 0
    积分: 147
    排名: 0
    文章存档
    最新评论