a.注入字符串,数值单个数值
b.注入bean对象
c.注入集合list,set,map,properties
d.spring表达式注入
e.注入空值
注入字符串,数值单个数值
<property name=”” value=”“>
java
<bean id="msg" class="org.tarena.bean.MessageBean">
<property name="name" value="root">
</property>
<property name="age" value="25">
</property>
</bean>
注入bean对象
ref=”对象id名”
注入集合list,set,map,properties
list:
java
<property name="friends">
<list>
<value>tom</value>
<value>jack</value>
</list>
</property>
set:
java
<property name="cities">
<set>
<value>北京</value>
<value>上海</value>
</set>
</property>
map:
java
<property name="books">
<map>
<entry key="1001" value="Java基础"></entry>
<entry key="1002" value="JavaWeb基础"></entry>
</map>
</property>
properties:
java:
<property name="db">
<props>
<prop key="username">root</prop>
<prop key="password">123</prop>
<prop key="dirver">com.sql.jdbc.Driver</prop>
</props>
</property>
扩充:list,set,map,properties的遍历demo
System.out.println("--list注入信息--:");
for(String s : friends){
System.out.println(s);
}
System.out.println("--set注入信息--:");
for(String s : cities){
System.out.println(s);
}
System.out.println("--Map注入信息--:");
Set<Entry<String,String>> booksSet = books.entrySet();
for(Entry<String,String> e : booksSet){
System.out.println(e.getKey()+":"+e.getValue());
}
System.out.println("--Pr注入信息--:");
Set<Object> keys = db.keySet();
for(Object key : keys){
System.out.println(key+":"+db.getProperty(key.toString()));
}
可以在<bean>元素之外定义对象。这样,定义的对象可以被重复利用。
java
<!-- 定义List对象 -->
<util:list id="someList">
<value>tom</value>
<value>jack</value>
<!-- 定义Set对象 -->
</util:list>
<util:set id="someSet">
<value>北京</value>
<value>上海</value>
</util:set>
<!-- 定义Map对象 -->
<util:map id="someMap">
<entry key="1001" value="Java基础"></entry>
<entry key="1002" value="JavaWeb基础"></entry>
</util:map>
<!-- 定义Properties对象(方法一) -->
<util:properties id="someProperties">
<prop key="username">root</prop>
<prop key="password">123</prop>
<prop key="dirver">com.sql.jdbc.Driver</prop>
</util:properties>
<!-- 读取db.properties文件,形成一个Properties对象(方法二) -->
<!-- 从classpath:db.properties文件中读取信息,形成一个id为dbParams的Properties对象 -->
<util:properties id="dbParams"
location="classpath:db.properties">
</util:properties>
<!-- 定义<bean>,将对象添加到响应的属性上 -->
<bean id="msg1" class="org.tarena.bean.MessageBean">
<property name="friends" ref="someList">
</property>
<property name="cities" ref="someSet">
</property>
<property name="books" ref="someMap">
</property>
<property name="db" ref="someProperties">
</property>
</bean>
spring表达式注入
#{表达式}
#{id.属性}或#{id名.key}或#{id名[2]}
如果是对象属性,需要有getXXX()方法
如果key为数字123,则要写成:
/#{dbParams[‘123’]}
<!-- 从id为dbParams的对象中,取user的值 -->
<property name="name" value="#{dbParams.user}">
</property>
<!-- 从id为somgList的集合对象中,取第一个值 -->
<property name="name" value="#{someList[0]}">
</property>
注入空值
<property name="name">
<null/>
</property>