热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spring:集合注入组合注入

在Spring中可以通过一组内置的xml标签(例如:,或)来配置集合属性。当使用、、等元素配置集合

在 Spring中可以通过一组内置的 xml 标签(例如: , ) 来配置集合属性。当使用等元素配置集合类型的参数值时,还需要配置集合元素。


1,数组、List、Set等集合注入


配置 java.util.List 类型的属性, 需要指定   标签, 在标签里包含一些元素. 这些标签可以通过 指定简单的常量值, 通过 指定对其他 Bean 的引用. 通过 指定内置 Bean 定义. 通过 指定空元素. 甚至可以内嵌其他集合。

  • 数组的定义和 List 一样, 都使用
  • 配置 java.util.Set 需要使用 标签, 定义元素的方法与 List 一样。
  • java.util.Map 通过 标签定义, 标签里可以使用多个 作为子标签. 每个条目包含一个键和一个值。因为键和值的类型没有限制, 所以可以自由地为它们指定 , , 元素。
  • 元素用于配置Properties类型的参数值,Properties类型是一种特殊的类型,其key和value都只能是字符串,故配置Porperties类型的参数值只需要每个key-value对分别给出key和value就足够了。


value-list-1value-list-2value-list-3value-prop-1value-prop-2value-prop-3value-set-1value-set-2value-set-3value-array-1value-array-2value-array-3

package Bean;import java.util.*;public class ComplexAssembly {private Long id;private List list;private Map map;private Properties props;private Set set;private String[] array;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public List getList() {return list;}public void setList(List list) {this.list = list;}public Map getMap() {return map;}public void setMap(Map map) {this.map = map;}public Properties getProps() {return props;}public void setProps(Properties props) {this.props = props;}public Set getSet() {return set;}public void setSet(Set set) {this.set = set;}public String[] getArray() {return array;}public void setArray(String[] array) {this.array = array;}}


2,注入组合属性值


例如:使用配置文件为foo.bar.name的属性设置参数值,其中foo.bar.name为组合属性;其中bar是一个独立的类,并且作为foo的一个属性存在;同时bar对象必须先完成初始化;   

package Bean;
public class Person {private car car = new car();public car getCar() {return car;}public void setCar(car car) {this.car = car;}
}

package Bean;public class car {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}



为Bean的组合属性设置参数时,除最后一个属性之外,其他属性都不允许为null,因为组合属性只有最后一个属性才调用setter方法,前面各属性实际上对应于调用getter方法。

对于注入组合属性值的形式,每个元素依然是让Spring执行一次setter方法,但它不再直接调用该Bean的setter方法,而是需要先调用getter方法,然后再去调用setter方法,也就是说组合属性只有最后一个属性才调用setter方法。


推荐阅读
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
author-avatar
_西兰花_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有