spring 依赖注入:
关于ioc依赖注入方式,解决了在java程序中使用new 方式来产生对象,实现了解耦。
下面将结合代码 实现类对应属性与配置文件的映射,对于list,map,等属性映射做了测试。
下面bean 代码只下了属性,构造函数以及set,get 方法省略
通过属性依赖注入方式:
其中划红线的属性为一个对象,这个对象在对应生成的配置文件为:
配置文件如下:
注意关于map的配置
通过构造函数依赖注入 SutentBean对象
[size=large]总结:关于依赖注入的配置文件 注意2点就Ok:
1.里面括号ref总共 在2个地方用到,一个是在映射属性为list类型且里面装的东西为对象或者引用类型 此时,用法为<ref bean ="指向对象的引用(也可以理解为该类产生的对象)简单理解为bean 的id值"></ref>
2.在当映射属性为对象类型时,此时ref用法为<property name="属性名" ref ="该属性对象类型的id值"></property
[/size]
关于ioc依赖注入方式,解决了在java程序中使用new 方式来产生对象,实现了解耦。
下面将结合代码 实现类对应属性与配置文件的映射,对于list,map,等属性映射做了测试。
下面bean 代码只下了属性,构造函数以及set,get 方法省略
public class StudentBean {
private int id;
private String name;
private BoxBean box; // 对象类型映射
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
// 类 pencilBean
通过属性依赖注入方式:
<bean id ="stud1" class="com.xxg.bean.StudentBean">
<property name="id" value ="1"></property>
<property name="name" value ="xxg"></property>
[color=red]<property name="box" ref ="box1"></property>[/color]
</bean>
其中划红线的属性为一个对象,这个对象在对应生成的配置文件为:
<bean id ="box1" class ="com.xxg.bean.BoxBean">
<property name ="color" value="红色"></property>
<property name ="name" value ="飞哥书包"></property>
<property name ="pencils">
<list>
<ref bean="pencil1"></ref> <!--list里面装的是引用类型用 <ref bean="pencil1"> </ref> pencil1 为一个对象 形式 -->
<ref bean="pencil2"></ref>
<ref bean="pencil3"></ref>
</list>
<!--
如果list 里面装的是基本数据类型
则 用value设置
-->
<list>
<value>aaaaaaaaa</value>
<value>bbbbbbbbb</value>
</list>
</property>
</bean>
public class PencilBean {
private String type;
private String name;
private Map<String, String> map;
public Map<String, String> getMap() {
return map;
}
配置文件如下:
注意关于map的配置
<bean id ="pencil1" class ="com.xxg.bean.PencilBean"> <!-- 相当于 PencilBean penclil1 = new PencilBeran() -->
<property name ="type" value="a1"></property> <!--penclil1.setType("a1") -->
<property name ="name" value="美丽牌"></property> <!--penclil1.setName("美丽牌") -->
<property name ="map">
<map >
<entry>
<key >
<value>no1</value> <!--Map key 的值 -->
</key>
<value>声声道铅笔</value> <!-- 该key 对应的值 -->
</entry>
<entry>
<key >
<value>no2</value>
</key>
<value>二位keguan</value>
</entry>
</map>
</property>
</bean>
通过构造函数依赖注入 SutentBean对象
<bean id ="stud2" class ="com.xxg.bean.StudentBean">
<constructor-arg type="int" value="2"></constructor-arg> <!--是int 类型但不能写成java.lang.Integer -->
<constructor-arg type="java.lang.String" value ="yml"></constructor-arg>
<constructor-arg type ="com.xxg.bean.BoxBean" ref="box1"></constructor-arg>
</bean>
[size=large]总结:关于依赖注入的配置文件 注意2点就Ok:
1.里面括号ref总共 在2个地方用到,一个是在映射属性为list类型且里面装的东西为对象或者引用类型 此时,用法为<ref bean ="指向对象的引用(也可以理解为该类产生的对象)简单理解为bean 的id值"></ref>
2.在当映射属性为对象类型时,此时ref用法为<property name="属性名" ref ="该属性对象类型的id值"></property
[/size]