Spring框架学习笔记(4)——配置bean more
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的更多相关文章
- 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...
- 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)
Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式 √ id:标识容器中的bean.id唯一. √ cl ...
- Spring框架学习笔记(5)——Spring Boot创建与使用
Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...
- Spring框架学习笔记(1)
Spring 框架学习笔记(1) 一.简介 Rod Johnson(spring之父) Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架, ...
- Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建
之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...
- Spring框架学习笔记(3)——配置bean
1.属性注入 (1)根据setter方法属性注入,这里使用的是property标签.需要bean属性提供对应的setter方法,比如笔记(1)里的 HelloWorld使用的就是这种方法. <! ...
- Spring框架学习笔记(3)——SpringMVC框架
SpringMVC框架是基于Spring框架,可以让我们更为方便的进行Web的开发,实现前后端分离 思路和原理 我们之前仿照SpringMVC定义了一个自定义MVC框架,两者的思路其实都是一样的. 建 ...
- Spring框架学习之注解配置与AOP思想
上篇我们介绍了Spring中有关高级依赖关系配置的内容,也可以调用任意方法的返回值作为属性注入的值,它解决了Spring配置文件的动态性不足的缺点.而本篇,我们将介绍Spring的又一大核心 ...
- [ SSH框架 ] Spring框架学习之二(Bean的管理和AOP思想)
一.Spring的Bean管理(注解方式) 1.1 什么是注解 要使用注解方式实现Spring的Bean管理,首先要明白什么是注解.通俗地讲,注解就是代码里的特殊标记,使用注解可以完成相应功能. 注解 ...
- spring框架学习笔记7:事务管理及案例
Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate ...
随机推荐
- python各种类型的转换
#进制转换 ord(x) #将一个字符转换为它的整数值 hex(x) #将一个整数转换为一个十六进制字符串 oct(x) #将一个整数转换为一个八进制字符串 #类型转换int(x [,base ]) ...
- ArcGIS API for JavaScript 4.2学习笔记[10] 2D添加指北针widget、视图保存、视图padding(第二章完结)
这几个例子是第二章除了入门之外比较简单的几个,就做个合集,把最核心的代码(第二参数)和 引用放上来即可,不作多解释. 2D地图添加指北针widget 2D地图一般修正方向为正北方就需要这个widget ...
- 浅谈对ST表的一些理解
今天打了人生第一道ST表题(其实只是ST表跑得最快); ST表是一种用来解决RMQ问题的利器... 大体操作有两步: 第一部分nlogn预处理 第二部分O(1)询问 预处理就是运用倍增+区间动规 ST ...
- 【WebGL】《WebGL编程指南》读书笔记——第4章
一.前言 今天继续第四章的学习内容,开始学习复合变换的知识. 二.正文 Example1: 复合变换 在书中,作者为我们封装了一套用于变换的矩阵对象:Matrix4对象.它 ...
- 【算法设计与分析基础】24、kruskal算法详解
首先我们获取这个图 根据这个图我们可以得到对应的二维矩阵图数据 根据kruskal算法的思想,首先提取所有的边,然后把所有的边进行排序 思路就是把这些边按照从小到大的顺序组装,至于如何组装 这里用到并 ...
- 鸟哥的linux私房菜学习-(五)补充:重点回顾
为了避免瞬间断电造成的Linux系统危害,建议做为服务器的Linux主机应该加上不断电系统来持续提供稳定的电力: 默认的图形模式登陆中,可以选择语系以及作业阶段.作业阶段为多种窗口管理员软件所提供,如 ...
- XUL透明异形旋转窗体
200行不到的代码,实现透明异形旋转窗体. 下载(25MB): http://oltag.com:8080/yaolixing/18/11/00/OHUIv52.0.1_3_webTrans20180 ...
- Oracle相关知识做个总结
一.创建用户: 以系统管理员登陆,右键点击Uers进行新建, 一般:默认空间选择USERS,临时表空间选择TEMP,概要文件选择DEFAULT. 对象权限:不做操作. 角色权限:1.connect 2 ...
- 基于web的网上书城系统开发-----登录注册扩展-------验证码功能
public class CheckCode extends HttpServlet { private static final long serialVersionUID = 1L; privat ...
- iOS获取各种数据方法整理以及IDFA与IDFV使用环境
iOS获取APP版本号: NSString *AppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBun ...