(一)构造参数注入
- 标签:
constructor-arg
1.根据构造器参数的顺序(索引)
<!-- 按照索引注入,索引开始为0 -->
<bean id="myBean" class="com.lty._03constructor.MyBean">
<constructor-arg index="0" value="猪皮"></constructor-arg>
<constructor-arg index="1" value="2"></constructor-arg>
</bean>
2.根据构造器参数的名称
<!-- 按照名称注入,名称必须一致 -->
<bean id="myBean" class="com.lty._03constructor.MyBean">
<constructor-arg name="name" value="猪猪"></constructor-arg>
<constructor-arg name="age" value="1"></constructor-arg>
</bean>
3.根据构造器的类型注入
<!-- 按照类型注入,必须一一对应,不能有重复的类型-->
<bean id="myBean" class="com.lty._03constructor.MyBean">
<constructor-arg type="java.lang.String" value="甫甫"></constructor-arg>
<constructor-arg type="java.lang.Integer" value="3"></constructor-arg>
</bean>
4.自动进行注入
<!-- 按照自动注入,顺序是不允许修改的-->
<bean id="myBean" class="com.lty._03constructor.MyBean">
<constructor-arg value="中分"></constructor-arg>
<constructor-arg value="4"></constructor-arg>
</bean>
(二)有一个参数是我们自己的一个对象
1.外部bean引用
<bean id="otherBean" class="com.lty._03constructor.OtherBean"></bean>
<bean id="myBean" class="com.lty._03constructor.MyBean">
<constructor-arg index="0" value="白白"></constructor-arg>
<constructor-arg index="1" value="2"></constructor-arg>
<!--外部bean引用,相当于java中的全局变量,可以重复使用-->
<constructor-arg ref="otherBean"></constructor-arg>
</bean>
2.内部bean配置
<bean id="otherBean" class="com.lty._03constructor.OtherBean"></bean>
<bean id="myBean" class="com.lty._03constructor.MyBean">
<constructor-arg index="0" value="白白"></constructor-arg>
<constructor-arg index="1" value="2"></constructor-arg>
<!--内部bean配置,相当于java中的局部变量-->
<constructor-arg>
<bean class="com.lty._03constructor.OtherBean"></bean>
</constructor-arg>
</bean>
(三)属性注入
1.普通属性
准备属性
private Long id;
private String name;
private Boolean sex;
private BigDecimal salary;
配置的代码
<property name="id" value="1"></property>
<property name="name" value="猪皮"></property>
<property name="sex" value="true"></property>
<property name="salary" value="3000"></property>
2.集合属性
▪ List< String>
准备属性
private List<String> list;
配置的代码
<!--List<String> list:有序可重复-->
<property name="list">
<list>
<value>甫甫</value>
<value>白白</value>
<value>中分</value>
</list>
</property>
▪ Set< String>
准备属性
private Set<String> set;
配置的代码
<!--Set<String> set:无序不可重复-->
<property name="set">
<set>
<value>金木研</value>
<value>利世</value>
<value>董香</value>
</set>
</property>
▪ List< OtherBean>
准备属性
private List<OtherBean> otherBeanList;
配置的代码
<!--List<OtherBean> otherBeanList
有4个值,外部引用的地址值一样
-->
<property name="otherBeanList">
<list>
<!--内部引用-->
<bean class="com.lty._04di.OtherBean"></bean>
<bean class="com.lty._04di.OtherBean"></bean>
<!--外部引用-->
<ref bean="otherBean"></ref>
<ref bean="otherBean"></ref>
</list>
</property>
▪ Set< OtherBean>
准备属性
private Set<OtherBean> otherBeanSet;
配置的代码
<!--Set<OtherBean> otherBeanSet
有3个值,外部引用的地址值只显示了一个
-->
<property name="otherBeanSet">
<set>
<bean class="com.lty._04di.OtherBean"></bean>
<bean class="com.lty._04di.OtherBean"></bean>
<!--外部引用-->
<ref bean="otherBean"></ref>
<ref bean="otherBean"></ref>
</set>
</property>
▪ Map<String,Integer>
准备属性
private Map<String,Integer> map;
配置的代码
<!--Map<String,Integer> map-->
<property name="map">
<map>
<entry key="银时" value="2"></entry>
<entry key="神乐" value="4"></entry>
<entry key="新八" value="6"></entry>
</map>
</property>
3.数组属性
准备属性
private String[] arrays1;
private String[] arrays2;
配置的代码
<!--String[] arrays1:标准写法-->
<property name="arrays1">
<array>
<value>夏</value>
<value>木</value>
</array>
</property>
<!--String[] arrays2:简写形式-->
<property name="arrays2" value="喵咪,老师"></property>
4.Properties属性
准备属性
private Properties props1;
private Properties props2;
配置的代码
<!--Properties props1:标准写法-->
<property name="props1">
<props>
<prop key="username">童</prop>
<prop key="password">123456</prop>
</props>
</property>
<!--Properties props2:简写形式(不支持中文,可以把等号换成空格)-->
<property name="props2">
<value>
username=瑶
password=112233
</value>
</property>
XML自动注入(了解)
- 自动注入有两种方式 (类型与名称)
- 设置全局的自动注入
<beans ... default-autowire="byType/byName"> - 单独为某一个bean配置自动注入
<bean ... autowire="byType/byName">
1860

被折叠的 条评论
为什么被折叠?



