Spring依赖注入

(一)构造参数注入

  • 标签: 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">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值