在Spring的bean配置文件中,每个bean必须有一个唯一标识的名称或者id,以及一个完全限定的类名,用来让Ioc容器对其进行实例化。

例如有一个简单的Bean:

package com.gisxx.beans;public class Fruit {private String name;private double price;public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Fruit [name=" + name + ", price=" + price + "]";}}

使用property元素

通过property元素来给bean注入属性,bean必须要有相应的setter方法并且有不带参数的构造函数。

1、使用property元素的value子元素来指定属性值

    <!-- 使用property标签 --><bean id="fruit1" class="com.gisxx.beans.Fruit"><property name="name"><value>苹果</value></property><property name="price"><value>5.5</value></property></bean>

2、使用简化的property元素,用value属性来指定属性值

    <!-- 使用简化的property标签 --><bean id="fruit2" class="com.gisxx.beans.Fruit"><property name="name" value="橘子"></property><property name="price" value="6.6"></property></bean>

使用构造方法

使用constructor-arg 元素来指定bean属性必须要有带参数的构造方法。可以通过index属性来指定参数顺序,如果没有index属性则先后顺序必须和构造方法参数顺序一致。

向Fruit.java添加构造方法:

    public Fruit(String name, double price) {super();this.name = name;this.price = price;}

bean配置文件:

    <!-- 使用构造方法 --><bean id="fruit4" class="com.gisxx.beans.Fruit"><constructor-arg index="0"><value>香蕉</value></constructor-arg><constructor-arg index="1"><value type="double">3.4</value></constructor-arg></bean>

使用P命名空间

使用p标签简化bean配置文件,通过p:(属性名)形式来设置bean属性必须在beans中添加p命名空间:xmlns:p=”http://www.springframework.org/schema/p”。

<!-- 使用p命名空间 -->
<bean id="fruit3" class="com.gisxx.beans.Fruit" p:name="桃子" p:price="8.8" />

引用其它bean

如果我们有一个Person类,其中fruit代表该person喜欢的水果,代码如下


public class Person {private String name;private int age;private Fruit fruit;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Fruit getFruit() {return fruit;}public void setFruit(Fruit fruit) {this.fruit = fruit;}}

在bean配置文件中配置Person类bean可以在配置fruit属性时使用ref属性引用创建好了的外部fruit类bean。

    <bean id="person1" class="com.gisxx.beans.Person"><property name="name" value="张三"></property><property name="age" value="22"></property><property name="fruit" ref="fruit1"></property></bean>

或者可以直接创建一个内部Fruit类bean

    <bean id="person2" class="com.gisxx.beans.Person"><property name="name" value="张三"></property><property name="age" value="22"></property><property name="fruit"><bean class="com.gisxx.beans.Fruit" p:name="火龙果" p:price="12" /></property></bean>

配置集合属性

在 Spring中可以通过一组内置的 xml 标签(例如: list, set 或 map) 来配置集合属性.

  • 配置 java.util.List 类型的属性, 需要指定 list> 标签, 在标签里包含一些元素. 这些标签可以通过 指定简单的常量值, 通过 ref指定对其他 Bean 的引用. 通过bean 指定内置 Bean 定义. 甚至可以内嵌其他集合.
  • 数组的定义和 List 一样, 都使用 list
  • 配置 java.util.Set 需要使用 set 标签, 定义元素的方法与 List 一样.

例如,如果一个人喜欢多种水果,Person的fruit属性改为:

private List<Fruit> fruits;

我们可以在property配置fruits属性中添加list元素,然后通过子元素ref来添加喜欢的水果bean:

    <bean id="person1" class="com.gisxx.beans.Person"><property name="name" value="张三"></property><property name="age" value="22"></property><property name="fruits"><list><ref bean="fruit1"/><ref bean="fruit2"/><ref bean="fruit3"/></list></property></bean>
  • Java.util.Map 通过 map标签定义, map标签里可以使用多个 entry 作为子标签. 每个条目包含一个键和一个值.

如果将Person的fruit属性改为Map类型:

private Map<Integer,Fruit> fruits;
    <bean id="person1" class="com.gisxx.beans.Person"><property name="name" value="张三"></property><property name="age" value="22"></property><property name="fruits"><map><entry key="1" value-ref="fruit1"></entry><entry key="2" value-ref="fruit2"></entry><entry key="3" value-ref="fruit3"></entry></map></property></bean>

Spring如何配置bean属性相关推荐

  1. spring 的配置 beanpropertyname属性

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  2. 【Spring】Spring常用配置-Bean的初始化和销毁(生命周期)

    转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 分析 在我们实际开发的时候,经常会遇到在Bean使用之前或者之后做些必要的操作,Sp ...

  3. spring.xml配置类属性--喜闻乐见

    相信大家在开发的过程中,都会写一些配置文件或者配置类来,毕竟好的编码习惯是不能硬编码的,所以配置文件和配置类就显得很重要了.但是我用久了之后发现,配置文件和配置类确实好用,但是假如有多个配置的话,那么 ...

  4. spring中的bean属性相关访问、编辑、转换

    1.类层次结构

  5. spring的Bean属性

    我们在配置spring文件时,会遇到配置bean属性的问题,bean的作用很简单,就是使用该元素描述需要spring容器管理对象 <?xml version="1.0" en ...

  6. 4. Spring 如何通过 XML 文件配置Bean,以及如何获取Bean

    在 Spring 容器内拼凑 bean 叫做装配.装配 bean 的时候,你是在告诉容器,需要哪些 bean ,以及容器如何使用依赖注入将它们配合在一起. 理论上,bean 装配的信息可以从任何资源获 ...

  7. Spring和Spring的配置

    Spring框架 1.什么是spring spring是一个分层的java EE应用full-stack轻量级开源框架,以IOC(反转控制)和AOP(面向切面编程)为内核 2.Spring的优势 1) ...

  8. Spring3.1.0实现原理分析(七).填充Bean属性,初始化Bean,登记善后处理,注册单例Bean

    大家好,上篇博客我较详细分析了实例化过程,今天继续探讨实例化之后的其它步骤,分别是"填充Bean属性","初始化Bean","登记善后处理" ...

  9. Spring3.1.0实现原理分析(七).填充Bean属性,初始化Bean,登记善后处理,注册单例Bean...

    大家好,上篇博客我较详细分析了实例化过程,今天继续探讨实例化之后的其它步骤,分别是"填充Bean属性","初始化Bean","登记善后处理" ...

最新文章

  1. 舒服了,微信支持多设备同时在线!
  2. IA-32 Intel手册学习笔记(一)系统架构概述
  3. day05 selenium库的基础使用
  4. protopype 和 __proto__的区别
  5. 盘点分库分表中,你一定要避开的那些坑!
  6. java replace第二个_java - 错误的第二个参数类型:从片段内调用.replace() - 堆栈内存溢出...
  7. 第三章 Goroutine调度策略(16)
  8. 汉字转拼音以及五笔码
  9. Android开发-数据回传
  10. SLAM系统原理推导
  11. Windows libyuv 引入 libjpeg
  12. 移动设备管理存在哪些威胁?
  13. Clouda开发笔记
  14. 【译】基于 Rust 用 Bevy 实现节奏大师游戏
  15. 初识华为设备和基本命令
  16. 易企秀前端压缩源码分析与还原
  17. 35去一线城市找工作_空间计算如何改变一线工作的现状
  18. Stata:时变Granger因果检验
  19. html中头向下的箭头怎么打出来,向下的箭头怎么打,最简单实用的电脑知识
  20. 【解决方案】EasyCVR视频结构化平台如何搭建肉品屠宰场全市联网远程监控系统?

热门文章

  1. 洛谷——P1652 圆
  2. 注册事件的两种方式(传统注册事件、方法监听注册事件)
  3. HTML5新增视频标签(HTML5)
  4. JavaScript 从数组中删除元素方法
  5. 怎么成为日上会员直邮_放福利啦,免税店现在一件也能直邮,不用出入境、不用出入境、不用找代购...
  6. 如何使用阿里云搭建个人网站
  7. Vue中路由管理器Vue Router使用介绍(三)
  8. 跋山涉水 —— 深入 Redis 字典遍历
  9. (八)mybatis之映射器
  10. netapp学习(三)---assign unowned disk