峰Spring4学习(3)注入参数的几种类型

People.java model类:
package com.cy.entity; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set; public class People {
private int id;
private String name;
private int age;
private Dog dog;
private List<String> hobbies = new ArrayList<String>();
private Set<String> loves = new HashSet<String>();
private Map<String,String> works = new HashMap<String,String>();
private Properties addresses = new Properties(); public People() {
super();
// TODO Auto-generated constructor stub
}
public People(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
public Set<String> getLoves() {
return loves;
}
public void setLoves(Set<String> loves) {
this.loves = loves;
}
public Map<String, String> getWorks() {
return works;
}
public void setWorks(Map<String, String> works) {
this.works = works;
}
public Properties getAddresses() {
return addresses;
}
public void setAddresses(Properties addresses) {
this.addresses = addresses;
} @Override
public String toString() {
return "People [id=" + id + ", name=" + name + ", age=" + age
+ ", dog=" + dog.getName() + ", hobbies=" + hobbies + ", loves=" + loves
+ ", works=" + works + ", addresses=" + addresses + "]";
} }
com.cy.entity.Dog: Model类:
package com.cy.entity;
public class Dog {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
spring管理bean配置文件:
beans.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 基本类型值 -->
<bean id="people1" class="com.cy.entity.People">
<property name="id" value="1"></property>
<property name="name" value="张三"></property>
<property name="age" value="11"></property>
</bean> <bean id="dog1" class="com.cy.entity.Dog">
<property name="name" value="Jack"></property>
</bean> <!-- 注入bean -->
<bean id="people2" class="com.cy.entity.People">
<property name="id" value="2"></property>
<property name="name" value="李四"></property>
<property name="age" value="14"></property>
<property name="dog" ref="dog1"></property>
</bean> <!-- 内部bean -->
<bean id="people3" class="com.cy.entity.People">
<property name="id" value="3"></property>
<property name="name" value="王五"></property>
<property name="age" value="13"></property>
<property name="dog">
<bean class="com.cy.entity.Dog">
<property name="name" value="Tom"></property>
</bean>
</property>
</bean> <!-- null值 -->
<bean id="people4" class="com.cy.entity.People">
<property name="id" value="4"></property>
<property name="name" value="赵六"></property>
<property name="age" value="14"></property>
<property name="dog">
<null></null>
</property>
</bean> <!-- 级联属性 直接这么写,但是people中的dog为null值,会报错,在People dog属性初始化时,直接Dog dog = new Dog() -->
<!--
<bean id="people5" class="com.cy.entity.People">
<property name="id" value="5"></property>
<property name="name" value="孙七"></property>
<property name="age" value="14"></property>
<property name="dog.name" value="jack2"></property>
</bean> --> <!-- 集合属性 -->
<bean id="people6" class="com.cy.entity.People">
<property name="id" value="6"></property>
<property name="name" value="P6"></property>
<property name="age" value="16"></property>
<property name="dog" ref="dog1"></property>
<property name="hobbies">
<list>
<value>唱歌</value>
<value>跳舞</value>
</list>
</property>
<property name="loves">
<set>
<value>唱歌2</value>
<value>跳舞2</value>
</set>
</property>
<property name="works">
<map>
<entry>
<key><value>上午</value></key>
<value>写代码</value>
</entry>
<entry>
<key><value>下午</value></key>
<value>测试代码</value>
</entry>
</map>
</property>
<property name="addresses">
<props>
<prop key="address1">aaaa</prop>
<prop key="address2">bbbb</prop>
</props>
</property>
</bean>
</beans>
测试代码:
package com.cy.test; import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cy.entity.People; public class T { private ApplicationContext ac; @Before
public void setUp() throws Exception {
ac=new ClassPathXmlApplicationContext("beans.xml");
} //基本类型值
@Test
public void test() {
People people1 = (People) ac.getBean("people1");
System.out.println(people1);
} //注入bean
@Test
public void test2() {
People people2 = (People) ac.getBean("people2");
System.out.println(people2);
} //内部bean
@Test
public void test3() {
People people3 = (People) ac.getBean("people3");
System.out.println(people3);
} //注入null值
@Test
public void test4() {
People people4 = (People) ac.getBean("people4");
System.out.println(people4);
} //级联属性 测试代码直接在People类下面初始化dog,Dog dog = new Dog()
@Test
public void test5() {
People people5 = (People) ac.getBean("people5");
System.out.println(people5);
} //注入集合属性
@Test
public void test6() {
People people6 = (People) ac.getBean("people6");
System.out.println(people6);
//People [id=6, name=P6, age=16, dog=Jack, hobbies=[唱歌, 跳舞], loves=[唱歌2, 跳舞2], works={上午=写代码, 下午=测试代码}, addresses={address2=bbbb, address1=aaaa}] } }
峰Spring4学习(3)注入参数的几种类型的更多相关文章
- C#中方法的参数的四种类型
C#中方法的参数有四种类型: 1. 值参数类型 (不加任何修饰符,是默认的类型) 2. 引用型参数 (以ref 修饰符声明) 3. 输出型参数 (以out 修 ...
- Python函数参数的五种类型
之前项目需求,需要通过反射获取函数的参数,python中可以通过函数签名(signature)来实现. 首先需要了解函数参数的类型,Python的参数类型一共有5种:POSITIONAL_OR_KEY ...
- 峰Spring4学习(2)依赖注入的几种方式
一.装配一个bean 二.依赖注入的几种方式 com.cy.entity People.java: package com.cy.entity; public class People { pri ...
- 峰Spring4学习(4)spring自动装配
一.自动装配: Model类: People.java: package com.cy.entity; public class People { private int id; private St ...
- 峰Spring4学习(5)bean之间的关系和bean的作用范围
一.bean之间的关系: 1)继承: People.java实体类: package com.cy.entity; public class People { private int id; priv ...
- 峰Spring4学习(1)HelloWorld
HelloWorld.java: package com.cy.test; public class HelloWorld { public void say(){ System.out.printl ...
- 峰Spring4学习(8)spring对事务的支持
一.事务简介: 二.编程式事务管理: 例子 1.需求:模拟转账,张三向李四转账50元: 数据库中存在t_count表: 代码实现: BankDao.java: package com.cy.dao; ...
- 峰Spring4学习(7)spring对JDBC的支持
第一节: 工程结构: 1)student.java: package com.cy.model; public class Student { private int id; private Stri ...
- 峰Spring4学习(6)spring AOP的应用例子
一.AOP简介: 二.AOP实例: 三.使用的例子 需求:在student添加的前后,打印日志信息: 0)spring AOP需要引用的jar包: 1)StudentService.java接口: p ...
随机推荐
- Java虚拟机运行时数据区
运行时数据区程序计数器Java虚拟机栈本地方法栈Java堆(GC堆)方法区运行时常量池 运行时数据区 Java虚拟机在运行Java程序时,会将它所管理的内存划分为若干个内存区域.这些数据区域有各自的用 ...
- Java Socket 实现HTTP服务器核心
原文链接:http://www.ihuxu.com/p/235.html 首先了解下HTTP协议: wikiPedia的说明很好,在此不重复了.链接:http://zh.wikipedia.org ...
- jQuery实现按Esc清除信息功能
1.jQuery实现按Esc清除信息功能 function clearLogs(){ $(".logs").empty(); } $(document).ready(fu ...
- 如何修改tomcat端口以及tomcat热部署
一.修改tomcat端口 1.首先我们需要知道,http的默认端口是80,tomcat的默认端口是8080,也就是说,如果我们将tomcat的默认端口号修改为80,输入网址的时候就可以不用输入端口了, ...
- [追加评论]三款SDR平台对比:HackRF,bladeRF和USRP
这三个月,有幸把3种板子都用到了.说说使用体会. 我用过其中的HackRF,bladeRF x115,USRP B210.我并没有仔细的测量各种板子的射频指标什么的,只是做各种实验的时候用到它们. ...
- UI基础:UILabel.UIFont 分类: iOS学习-UI 2015-07-01 19:38 107人阅读 评论(0) 收藏
UILabel:标签 继承自UIView ,在UIView基础上扩充了显示文本的功能.(文本框) UILabel的使用步骤 1.创建控件 UILabel *aLabel=[[UILabel alloc ...
- art.dialog 使用说明
Js代码 2. 传入HTMLElement 备注:1.元素不是复制而是完整移动到对话框中,所以原有的事件与属性都将会保留 2.如果隐藏元素被传入到对话框,会设置display:block属性显示该 ...
- 3.2 shell输入输出
shell输入与输出: read : read语句可以从键盘或者文件的某一行文本中读入信息,并将其赋值给一个变量. read var1 var2 ... 若只指定了一个变量,那么read将 ...
- linux 读取物理寄存器
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/mman.h ...
- HDU1081 最大字段和 压缩数组(单调队列优化)
最大字段和题型,推荐做题顺序: HDU1003 HDU1024 HDU1081 ZOJ2975 ZOJ2067 #include<cstdio> #include<cstdlib& ...