1. 通过index注入,为index设置需要注入参数的位置(**从0开始**)
2. 通过type注入,以类型注入
3. 通过方法参数名注入,参数名可能会有不稳定情况
<bean id="" class="">
<!-- <constructor-arg index="" value=""/>
or <constructor-arg type="" value=""/>
or <constructor-arg name="" value=""/> -->
</bean>
参数名不稳定情况解决办法
@ConstructorProperties({"name", "desc"})
public BeanScopeModel(String p1, String p2){
this.name = p1;
this.desc = p2;
}
<bean id="" class="">
<property name="" value=""/>
</bean>
1. 将value替换为ref
2. 内置bean
<list>
<value>Spring</value>
或
<ref bean="bean名称"/>
或
<list></list>
或
<bean></bean>
或
<array></array>
或
<map></map>
</list>
<set>
<value>Spring</value>
或
<ref bean="bean名称"/>
或
<list></list>
或
<bean></bean>
或
<array></array>
或
<map></map>
</set>
<map>
<entry key="键" value="值" key-ref="key引用的bean名称" value-ref="value引用的bean名称"/>
或
<entry>
<key>
value对应的值,可以为任意类型
</key>
<value>
value对应的值,可以为任意类型
</value>
</entry>
</map>
<array>
数组中的元素
</array>
Properties类相当于键值都是String类型的Map对象,使用props进行注入,如下:
<props>
<prop key="key1">value1</prop>
<prop key="key2">value2</prop>
<prop key="key3">value3</prop>
</props>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="user1" class="com.shimeath.test.demo5.UserModel"/>
<bean id="user2" class="com.shimeath.test.demo5.UserModel"/>
<bean id="diOtherType" class="com.shimeath.test.demo5.DiOtherTypeModel">
<!-- 注入java.util.List对象 -->
<property name="list1">
<list>
<value>Spring</value>
<value>SpringBoot</value>
</list>
</property>
<!-- 注入java.util.Set对象 -->
<property name="set1">
<set>
<ref bean="user1"/>
<ref bean="user2"/>
<ref bean="user1"/>
</set>
</property>
<!-- 注入java.util.Map对象 -->
<property name="map1">
<map>
<entry key="张三" value="30"/>
<entry key="李四" value="28"/>
</map>
</property>
<!-- 注入数组对象 -->
<property name="array1">
<array>
<value>10</value>
<value>9</value>
<value>8</value>
</array>
</property>
<!-- 注入java.util.Properties对象 -->
<property name="properties1">
<props>
<prop key="key1">value1</prop>
<prop key="key2">value2</prop>
<prop key="key3">value3</prop>
</props>
</property>
</bean>
</beans>