1、配置List属性

<!-- 配置List属性 -->
<bean id="person4" class="com.broadtext.beans.collection.Person">
<property name="name" value="hjj"></property>
<property name="age" value="24"></property>
<property name="cars">
<!-- 使用list节点为List类型属性值赋值 -->
<list>
<ref bean="car"/>
<ref bean="car2"/>
<bean class="com.broadtext.beans.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="Shanghai"></constructor-arg>
<constructor-arg type="double" value="300000"></constructor-arg>
</bean>
</list>
</property>
</bean>

2、配置Map属性

<!-- 配置Map属性 -->
<bean id="newPerson" class="com.broadtext.beans.collection.NewPerson">
<property name="name" value="hjjj"></property>
<property name="age" value="28"></property>
<property name="cars">
<map>
<entry key="A_Car" value-ref="car"></entry>
<entry key="B_Car" value-ref="car2"></entry>
</map>
</property>
</bean>

3、可以使用util命名空间单独配置一个集合bean以供其他bean应用

<!-- 单独配置一个集合bean以供其他bean应用 -->
<util:list id="cars">
<ref bean="car" />
</util:list>
<!-- 配置List属性 -->
<bean id="person4" class="com.broadtext.beans.collection.Person">
<property name="name" value="hjj"></property>
<property name="age" value="24"></property>
<!-- <property name="cars">
使用list节点为List类型属性值赋值
<list>
<ref bean="car"/>
<ref bean="car2"/>
<bean class="com.broadtext.beans.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="Shanghai"></constructor-arg>
<constructor-arg type="double" value="300000"></constructor-arg>
</bean>
</list>
</property> -->
<property name="cars" ref="cars"></property>
</bean>

4、模拟配置properties

<!-- 模拟配置properties -->
<bean id="dataSource" class="com.broadtext.beans.collection.DataSource">
<property name="properties">
<props>
<prop key="user">root</prop>
<prop key="password">12345</prop>
<prop key="jdbcUrl">jdbc:mysql://test</prop>
<prop key="driverClass">com.jdbc.mysql</prop>
</props>
</property>
</bean>

5、Person.java、NewPerson.java、DataSource.java、Main.java

Person.java

package com.broadtext.beans.collection;

import java.util.List;

import com.broadtext.beans.Car;

public class Person {
private String name;
private int age;
private List<Car> cars; public Person(String name, int age, List<Car> cars) {
super();
this.name = name;
this.age = age;
this.cars = cars;
} public Person() {
} @Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", cars=" + cars + "]";
} 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 List<Car> getCars() {
return cars;
} public void setCars(List<Car> cars) {
this.cars = cars;
} }

NewPerson.java

package com.broadtext.beans.collection;

import java.util.Map;

import com.broadtext.beans.Car;

public class NewPerson {
private String name;
private int age;
private Map<String, Car> cars; public NewPerson(String name, int age, Map<String, Car> cars) {
super();
this.name = name;
this.age = age;
this.cars = cars;
} public NewPerson() {
} @Override
public String toString() {
return "NewPerson [name=" + name + ", age=" + age + ", cars=" + cars + "]";
} 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 Map<String, Car> getCars() {
return cars;
} public void setCars(Map<String, Car> cars) {
this.cars = cars;
} }

DataSource.java

package com.broadtext.beans.collection;

import java.util.Properties;

public class DataSource {
private Properties properties; public Properties getProperties() {
return properties;
} public void setProperties(Properties properties) {
this.properties = properties;
} @Override
public String toString() {
return "DataSource [properties=" + properties + "]";
}
}

Main.java

package com.broadtext.beans.collection;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; /**
* <p>
* Description: 测试bean的List属性、Map属性的配置,模拟配置properties
* </p>
*/
public class Main {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) ctx.getBean("person4");
System.out.println(person);
NewPerson newPerson = (NewPerson) ctx.getBean("newPerson");
System.out.println(newPerson);
DataSource dataSource = ctx.getBean(DataSource.class);
System.out.println(dataSource.getProperties());
}
}

Spring框架学习笔记(4)——配置bean more的更多相关文章

  1. 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)

    组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...

  2. 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

    Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ cl ...

  3. Spring框架学习笔记(5)——Spring Boot创建与使用

    Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...

  4. Spring框架学习笔记(1)

    Spring 框架学习笔记(1) 一.简介 Rod Johnson(spring之父) Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架, ...

  5. Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建

    之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...

  6. Spring框架学习笔记(3)——配置bean

    1.属性注入 (1)根据setter方法属性注入,这里使用的是property标签.需要bean属性提供对应的setter方法,比如笔记(1)里的 HelloWorld使用的就是这种方法. <! ...

  7. Spring框架学习笔记(3)——SpringMVC框架

    SpringMVC框架是基于Spring框架,可以让我们更为方便的进行Web的开发,实现前后端分离 思路和原理 我们之前仿照SpringMVC定义了一个自定义MVC框架,两者的思路其实都是一样的. 建 ...

  8. Spring框架学习之注解配置与AOP思想

         上篇我们介绍了Spring中有关高级依赖关系配置的内容,也可以调用任意方法的返回值作为属性注入的值,它解决了Spring配置文件的动态性不足的缺点.而本篇,我们将介绍Spring的又一大核心 ...

  9. [ SSH框架 ] Spring框架学习之二(Bean的管理和AOP思想)

    一.Spring的Bean管理(注解方式) 1.1 什么是注解 要使用注解方式实现Spring的Bean管理,首先要明白什么是注解.通俗地讲,注解就是代码里的特殊标记,使用注解可以完成相应功能. 注解 ...

  10. spring框架学习笔记7:事务管理及案例

    Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate ...

随机推荐

  1. python各种类型的转换

    #进制转换 ord(x) #将一个字符转换为它的整数值 hex(x) #将一个整数转换为一个十六进制字符串 oct(x) #将一个整数转换为一个八进制字符串 #类型转换int(x [,base ]) ...

  2. ArcGIS API for JavaScript 4.2学习笔记[10] 2D添加指北针widget、视图保存、视图padding(第二章完结)

    这几个例子是第二章除了入门之外比较简单的几个,就做个合集,把最核心的代码(第二参数)和 引用放上来即可,不作多解释. 2D地图添加指北针widget 2D地图一般修正方向为正北方就需要这个widget ...

  3. 浅谈对ST表的一些理解

    今天打了人生第一道ST表题(其实只是ST表跑得最快); ST表是一种用来解决RMQ问题的利器... 大体操作有两步: 第一部分nlogn预处理 第二部分O(1)询问 预处理就是运用倍增+区间动规 ST ...

  4. 【WebGL】《WebGL编程指南》读书笔记——第4章

    一.前言        今天继续第四章的学习内容,开始学习复合变换的知识. 二.正文        Example1: 复合变换 在书中,作者为我们封装了一套用于变换的矩阵对象:Matrix4对象.它 ...

  5. 【算法设计与分析基础】24、kruskal算法详解

    首先我们获取这个图 根据这个图我们可以得到对应的二维矩阵图数据 根据kruskal算法的思想,首先提取所有的边,然后把所有的边进行排序 思路就是把这些边按照从小到大的顺序组装,至于如何组装 这里用到并 ...

  6. 鸟哥的linux私房菜学习-(五)补充:重点回顾

    为了避免瞬间断电造成的Linux系统危害,建议做为服务器的Linux主机应该加上不断电系统来持续提供稳定的电力: 默认的图形模式登陆中,可以选择语系以及作业阶段.作业阶段为多种窗口管理员软件所提供,如 ...

  7. XUL透明异形旋转窗体

    200行不到的代码,实现透明异形旋转窗体. 下载(25MB): http://oltag.com:8080/yaolixing/18/11/00/OHUIv52.0.1_3_webTrans20180 ...

  8. Oracle相关知识做个总结

    一.创建用户: 以系统管理员登陆,右键点击Uers进行新建, 一般:默认空间选择USERS,临时表空间选择TEMP,概要文件选择DEFAULT. 对象权限:不做操作. 角色权限:1.connect 2 ...

  9. 基于web的网上书城系统开发-----登录注册扩展-------验证码功能

    public class CheckCode extends HttpServlet { private static final long serialVersionUID = 1L; privat ...

  10. iOS获取各种数据方法整理以及IDFA与IDFV使用环境

    iOS获取APP版本号: NSString *AppVersion  =  [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBun ...