峰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 ...
随机推荐
- windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。
安装 PYQT5 pypcap 环境: windows10_x64 python3.6.3 pycharm2017.2.4 备注: 需要安装 Visual C++ Build Tools 2015 可 ...
- SOD范例
SOD申请台站波形数据范例: <?xml version="1.0"?> <sod> <eventArm> <fdsnEvent> ...
- [转载]三款SDR平台对比:HackRF,bladeRF和USRP
这篇文章是 Taylor Killian 13年8月发表在自己的博客上的.他对比了三款平价的SDR平台,认为这三款产品将是未来一年中最受欢迎的SDR平台.我觉得这篇文章很有参考价值,简单翻译一份转过来 ...
- SWIFT推送之本地推送(UILocalNotification)
本地推送通知是通过实例化UILocalNotification实现的.要实现本地化推送可以在AppDelegate.swift中添加代码实现,本事例是一个当App进入后台时推送一条消息给用户. 1.首 ...
- HDU 4640 状态压缩DP 未写完
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4640 解题思路: 首先用一个简单的2^n*n的dp可以求出一个人访问一个给定状态的最小花费,因为这i个 ...
- test20190324 树
题意 树(tree.cpp/c/pas) [题目背景] 这道题标算在评测机上的时间约为自己电脑的2/3 [问题描述] [输入格式] 共 n+2 行.第 1 行 1 个数,n. 后面 2-n 行,每行两 ...
- 将string str中的str转换成字符数组
#include <iostream> #include <map> #include <string.h> using namespace std; int ma ...
- SysRq魔法键的使用
SysRq魔法键的使用 1.SysRq简介它能够在系统处于极端环境时响应按键并完成相应的处理.这在大多数时候有用.SysRq 经常被称为 Magic System Request,它被定义为一系列按键 ...
- 转 MetaWeblog API 编写
如今,许多人都熟悉个人和公司或业界主办的博客.后者明显成为了传统公司和行业网站的下一代新兴产物.博客的内容涉及从简洁的特制产品公告和公共关系到实用且深刻的主题探索,这些主题可能对公司的产品或行业的未来 ...
- 横竖两个数字塔的效果BAT批处理怎么写?
横竖两个数字塔的效果BAT批处理怎么写?@echo offfor /l %%a in (0,1,1) do ( for /l %%i in (0,1,9) do ( for ...