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. vs code调试console程序报错--preLaunchTask“build”

    网上有其他大神给出的建议是注释掉launch.json中的 "preLaunchTask": "build", 但是这种方式也会造成一个问题,就是再使用F5调试 ...

  2. java I/O---复制文本文件

    利用FileInputStream 和FileOutputStream 复制文本 1 public class CopyTextByBuffer { 2 3 /** 4 * @param args 5 ...

  3. php-redis 操作类 封装

    <?php /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时,才会返回false. * 这点可用于防止缓存穿透 * */ cla ...

  4. ubuntu12.04destdrop删除不必要的软件

    sudo apt-get -y --auto-remove purge unity unity-2d*  sudo apt-get -y purge empathy  sudo apt-get -y ...

  5. lesson - 11 课程笔记

    一.sed  作用: sed 是一种流编辑器,它是文本处理中非常重要的工具, 能够完美的配合正则表达式使用.处理时,把当前处理的行存储在临时缓冲区中, 称为“模式空间(pattern space)”, ...

  6. python csv模块的reader是一个迭代器,无法多次迭代

    在一个项目中,我需要多次遍历一个文本,该文本我是用csv.reader读取的.但后来发现,本文只对第一次循环有用,而之后的循环均为空白.经过排错后,我确定问题就出现在csv.reader()这一步.之 ...

  7. JAVA 用数组实现 ArrayList

    我们知道 ArrayList 是一个集合,它能存放各种不同类型的数据,而且其容量是自动增长的.那么它是怎么实现的呢? 其实 ArrayList 的底层是用 数组实现的.我们查看 JDK 源码也可以发现 ...

  8. ubuntu 安装 pythonenv

    This will get you going with the latest version of pyenv and make it easy to fork and contribute any ...

  9. 微信小程序之使用本地接口开发

    本文主要讲解如何使用本地接口进行开发,很多人都会遇到这个问题,特别是小程序上线后. 一.解决思路 在小程序开发工具设置网络代理,然后再通过Charles设置代理,将https域名转为本地接口进行访问. ...

  10. 修改wamp中mysql的默认空密码

    WAMP安装好后,mysql密码是为空的,那么要如何修改呢? 一.打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车. 二.输入"use mysql",意思是使用m ...