Spring 参数注入
一个(类)Bean可能包含多种属性,这些属性怎么配置??? 见下:
用People Dog Cat Tiger Panda五个类来学习一些常用的=_=
重点在XML
<!--基本类型注入-->
<bean id="tiger" class="party.infoo.entity.Tiger">
<property name="name" value="Tiger_AA"/>
<property name="age" value="3"/>
</bean>
<bean id="cat" class="party.infoo.entity.Cat">
<property name="name" value="Cat_AA"/>
<property name="age" value="2"/>
</bean>
<bean id="dog" class="party.infoo.entity.Dog">
<property name="name" value="Dod_AA"/>
<property name="age" value="5"/>
</bean>
<bean id="panda" class="party.infoo.entity.Panda">
<property name="name" value="Panda_A"/>
<property name="age" value="3"/>
</bean>
<!--参数注入方法介绍-->
<bean id="people" class="party.infoo.entity.People">
<!--基本类型注入-->
<property name="name" value="People_AA"/> <!--bean注入-->
<property name="dog" ref="dog"/> <!--级联属性注入《要求已经new过的》-->
<property name="cat.name" value="Cat_BB"/> <!--内部bean注入-->
<property name="tiger">
<bean class="party.infoo.entity.Tiger">
<property name="name" value="Tiger_BB"/>
<property name="age" value="10"/>
</bean>
</property> <!--null值注入-->
<property name="panda">
<null></null>
</property> <!--list-->
<property name="books">
<list>
<value>JAVA</value>
<value>ENGLISH</value>
</list>
</property>
<!--set-->
<property name="hobbies">
<set>
<value>唱歌</value>
<value>玩游戏</value>
</set>
</property>
<!--map-->
<property name="works">
<map>
<entry>
<key><value>星期四</value></key>
<value>上班</value>
</entry>
<entry>
<key><value>星期五</value></key>
<value>放假</value>
</entry>
</map>
</property>
<!--proeperty-->
<property name="address">
<props>
<prop key="addres1">AAAAAAAAAA</prop>
<prop key="addres2">BBBBBBBBBB</prop>
</props>
</property>
</bean>
package party.infoo.entity; import java.util.*; /**
* Created by infoo on 2017/2/18.
*/
public class People {
private String name;
private Dog dog;
private Cat cat=new Cat();
private Tiger tiger;
private Panda panda;
private List<String> books=new ArrayList<String>();
private Set<String> hobbies=new HashSet<String>();
private Map<String,String> works=new HashMap<String,String>();
private Properties address=new Properties(); public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Dog getDog() {
return dog;
} public void setDog(Dog dog) {
this.dog = dog;
} public Cat getCat() {
return cat;
} public void setCat(Cat cat) {
this.cat = cat;
} public Tiger getTiger() {
return tiger;
} public void setTiger(Tiger tiger) {
this.tiger = tiger;
} public Panda getPanda() {
return panda;
} public void setPanda(Panda panda) {
this.panda = panda;
} public List<String> getBooks() {
return books;
} public void setBooks(List<String> books) {
this.books = books;
} public Set<String> getHobbies() {
return hobbies;
} public void setHobbies(Set<String> hobbies) {
this.hobbies = hobbies;
} public Map<String, String> getWorks() {
return works;
} public void setWorks(Map<String, String> works) {
this.works = works;
} public Properties getAddress() {
return address;
} public void setAddress(Properties address) {
this.address = address;
} @Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
", dog=" + dog +
", cat=" + cat +
", tiger=" + tiger +
", panda=" + panda +
", books=" + books +
", hobbies=" + hobbies +
", works=" + works +
", address=" + address +
'}';
}
}
package party.infoo.entity; /**
* Created by infoo on 2017/2/18.
*/
public class Tiger {
private String name;
private int age; 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;
} @Override
public String toString() {
return "Tiger{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package party.infoo.entity; /**
* Created by infoo on 2017/2/18.
*/
public class Panda {
private String name;
private int age; 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;
} @Override
public String toString() {
return "Panda{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package party.infoo.entity; /**
* Created by infoo on 2017/2/18.
*/
public class Dog {
private String name;
private int age; 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;
} @Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package party.infoo.entity; /**
* Created by infoo on 2017/2/18.
*/
public class Cat {
private String name;
private int age; 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;
} @Override
public String toString() {
return "Cat{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Spring 参数注入的更多相关文章
- spring mvc 复杂参数注入
过了这么久,又重新把博客拾起来了 来上海工作也已经有将近两周的时间了, 今天在整理项目的时候,遇到了一个关于参数注入的问题 背景: 我的开发前台用的是extjs4,在对后台spring mvc提交表单 ...
- spring 多线程 注入 服务层 问题
在用多线程的时候,里面要用到Spring注入服务层,或者是逻辑层的时候,一般是注入不进去的.具体原因应该是线程启动时没有用到Spring实例不池.所以注入的变量值都为null. 详细:http://h ...
- Spring 依赖注入方式详解
平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...
- Spring的注入问题
作下笔记,Spring的注入问题[多个实例问题] 解决方案如下: package student.life.support.platform.service.impl; import javax.an ...
- Spring依赖注入(IOC)那些事
小菜使用Spring有几个月了,但是对于它的内部原理,却是一头雾水,这次借着工作中遇到的一个小问题,来总结一下Spring. Spring依赖注入的思想,就是把对象交由Spring容器管理,使用者只需 ...
- Spring依赖注入三种方式详解
在讲解Spring依赖注入之前的准备工作: 下载包含Spring的工具jar包的压缩包 解压缩下载下来的Spring压缩包文件 解压缩之后我们会看到libs文件夹下有许多jar包,而我们只需要其中的c ...
- Spring依赖注入 --- 简单使用说明
Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...
- Java Web系列:Spring依赖注入基础
一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是 ...
- 为什么多线程、junit 中无法使用spring 依赖注入?
为什么多线程.junit 中无法使用spring 依赖注入? 这个问题,其实体现了,我们对spring已依赖太深,以至于不想自己写实例了. 那么到底是为什么在多线程和junit单元测试中不能使用依赖注 ...
随机推荐
- .NET程序运行原理及基本概念详解
一.引言 我们知道在Java中有虚拟机,代码运行时虚拟机把Java语言编译成与机器无关的字节码,然后再把字节码编译成机器指令执行,那么在.NET中程序是如何运行的呢?其实运行原理是一样的,.NET中的 ...
- VSCode, 当今最流行的免费开源代码编辑器,微软出品,必属精品
什么是VSCode? Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,并且可用于Windows,macOS和Linux.它内置了对JavaScript,T ...
- drf源码剖析系列(系列目录)
drf源码剖析系列(系列目录) 01 drf源码剖析之restful规范 02 drf源码剖析之快速了解drf 03 drf源码剖析之视图 04 drf源码剖析之版本 05 drf源码剖析之认证 06 ...
- 网页排名算法PagaRank
网页排名算法PageRank PageRank,网页排名,又叫做网页级别.是一种利用网页之间的超链接数据进行计算的方法.它是由Google的两位创始人提出的. 对于用户而言,网页排名一般是比较主观的, ...
- js 中 attachEvent 简示例
attachEvent绑定事件,函数的默认this指向为window,要解决问题可以通过call改变方法的指向! var div = document.getElementsByTagName('di ...
- ffmpeg播放器实现详解 - 视频显示
ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and port ...
- CSS上划线、下划线、删除线等方法
text-decoration:underline; 下划线 text-decoration:overline; 顶划线 text-decoration:line-through; 删 ...
- 集训作业 洛谷P1010 幂次方
这个…… 这个题看上去有点难的样子. 仔细看看,感觉有点简单.啊,是递归啊,正经的看一看,好像是把一个数分成2的几次方的和. 然后余数和比他小的最大的2的次方数如果不是2的一次方或者2的0次方,就继续 ...
- python常见报错信息!错误和异常!附带处理方法
作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息. Python 有两种错误很容易辨认:语法错误和异常. Python assert(断言)用于判断一个表达式,在表达 ...
- PyQt5布局管理器
布局分类 绝对定位:使用move方法将空间直接定死在某个坐标,不会随着窗口大小的改变而改变 可变布局:使用各种布局管理器,实现组件的位置和大小随着窗口的变化而变化 布局管理器 QHBoxLayout: ...