先解释下基本概念:
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>