先解释下基本概念:
IOC:控制反转:将对象的创建权,由Spring管理.
DI:依赖注入:在Spring创建对象的过程中,把对象依赖的属性注入到类中.
在面向对象中饭,常见的有以下几类关系。
1依赖:
public class A{
private B b;
}
2 继承关系
3 聚合关系
聚集:A类的对象在创建时不会立即创建B类的对象,而是等待一个外界的对象传给它,传给它的这个对象不是A类创建的。
组合:A中引用了b,并且b是a创建的。
Spring注入方式有2种,构造器和setter方法。下面举例说明,这里主要说明setter方式。构造器暂不举例
基本属性,以及对象,list,map,set 注入举例
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Car {
private String name;
private double money;
private List<String> list;
private Set<String> set;
private Map<String, Integer> map;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public Set<String> getSet() {
return set;
}
public void setSet(Set<String> set) {
this.set = set;
}
public Map<String, Integer> getMap() {
return map;
}
public void setMap(Map<String, Integer> map) {
this.map = map;
}
}
相关的xml代码
<bean id="Car" class="XXX.com.Car">
<!-- <property>标签中name就是属性名称,value是普通属性的值,ref:引用其他的对象 -->
<property name="name" value="保时捷"/>
<property name="money" value="5000000"/>
<property name="list">
<list>
<value>value1</value>
<value>value2</value>
</list>
</property>
<!-- 注入set集合 -->
<property name="set">
<set>
<value>value1</value>
<value>value2</value>
</set>
</property>
<!-- 注入map集合 -->
<property name="map">
<map>
<entry key="k1" value="1"/>
<entry key="k2" value="2"/>
</map>
</property>
</bean>