实际应用中, 我们的对象可能会引用很多不同类型的东西, 不单单只是几个数值
对象类型
在前一篇文章中, 已经使用引用对象作为例子, 关键在于使用ref
<!--注意引用的对象要先创建Bean, id为weapon1-->
<bean id="player1" class="com.demo.player">
<!--通过setter注入, 注意ref的使用-->
<property name="lv" value="60"></property>
<property name="weapon" ref="weapon1"></property>
</bean>
还有一种内部Bean的方法
<bean id="player2" class="com.demo.player">
<!--通过setter注入, 注意ref的使用-->
<property name="lv" value="60"></property>
<property name="weapon">
<bean id="weapon" class="com.demo.weapon">
<property name="type" value="sword"></property>
</bean>
</property>
</bean>
以及级联属性
<!--注意引用的对象要先创建一个Bean, id是weapon3-->
<bean id="player3" class="com.demo.player">
<!--通过setter注入, 注意ref的使用-->
<property name="lv" value="60"></property>
<property name="weapon" ref="weapon3"></property>
<property name="weapon.type" value="catalyst"></property>
</bean>
Array类型
在Player类中增加一个数组, string类型
public class Player {
private String[] Items;
// getter and settter
}
配置
<bean id="player4" class="com.demo.player">
<property name="items">
<array>
<value>coins</value>
<value>shirts</value>
<value>amor</value>
</array>
</property>
</bean>
List类型
添加一个列表, Item类型
public class Player {
private List<Item> items;
// getter and settter
}
配置
<!--记得先创建Item对象-->
<bean id="player5" class="com.demo.player">
<property name="items">
<list>
<!--bean后面是上面创建的Item对象的id-->
<ref bean="coins"></ref>
<ref bean="amores"></ref>
</list>
</property>
</bean>
Map类型
添加一个映射, 表示玩家的各种属性值
public class Player {
private Map<String, int> stats;
// getter and settter and toString
}
配置, 总这里就可以看出xml配置还是有缺点的
<!--记得先创建Item对象-->
<bean id="player6" class="com.demo.player">
<property name="stats">
<map>
<entry>
<key><value>HP</value></key>
<value>11320</value>
</entry>
<!--other entries-->
</map>
</property>
</bean>
<!--死亡缩进-->
集合Bean
就是不同类型的Bean集中到一起注入, i.e.把上文的map类型和list类型的放在一块
因为需要使用util, 所以xml文件头部变化较大
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/beans/util"
xsi:schemaLocation="
http://www.springframework.org/schema/util
http://www.springframework.org/schema/beans/spring-util.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
下面这样写
<util:list id="someList">
<ref bean="beanOfItemInList"></ref>
</util:list>
<util:map id="someMap">
<entry>
<key><value>HP</value></key>
<!--could be other beans ... use 'ref'-->
<value>11320</value>
</entry>
<!--other entries-->
</util:map>
p命名空间
p命名空间这样用
<!--前面记得创建weapon7的bean对象-->
<bean id="player7" class="com.demo.player"
p:lv="60" p:weapon="weapon7"></bean>
完结, 没有感想, 个xml文件写得头疼
标签:xml,settter,spring,Player,类型,public,注入 From: https://www.cnblogs.com/Akira300000/p/17967678