Spring的注入

一、参数的直接注入

1.1 通过set访问器进行注入

需要再实体类中添加对应属性的set方法才可以使用,使用<property>标签来标记注入的属性

标签中的name为实体类中的属性名,value为属性的值

<bean id="address" class="com.xja.bean.Address" scope="prototype">
        <property name="province" value="北京"/>
        <property name="city" value="北京"/>
    </bean>

1.2 通过构造方法进行注入 

需要包含该属性的构造方法才可以使用<constructor-arg>标签来标记要注入的属性

标签中的name为实体类中的属性名,value为属性的值

<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<constructor-arg name="name" value="Tom"/>
        <constructor-arg name="age" value="20"/>
</bean>

二、数组的注入 

数组注入时要使用<array>标签来标记注入的值,值要用<value>标签来标记

<bean id="u1" class="com.xja.bean.Student" scope="prototype">
        <property name="friends">
            <array>
                <value>OC</value>
                <value>Helen</value>
                <value>Happy</value>
                <value>A</value>
            </array>
        </property>
</bean>

三、集合的注入 

3.1 List注入

集合注入时要使用<list>标签来标记注入的值,值要用<value>标签来标记 

<bean id="u1" class="com.xja.bean.Student" scope="prototype">
       
        <property name="hobbies">
            <list>
                <value>乓乓球</value>
                <value>足球</value>
                <value>篮球</value>
            </list>
        </property>
</bean>

3.2 Map注入 

map注入时要使用<map>标签来标记注入的值,由于map采用的键值映射的保存方式,所以他的值要使用<entry>标签来标记。entry中的key和value分别对应键和值。并且有两种注入方式

1.在entry标签中设置key和value属性

2.在entry标签下设置key标签和value标签

<bean id="u1" class="com.xja.bean.Student" scope="prototype">
        <property name="score">
            <map>
                <entry key="语文" value="89"/>
                <entry key="数学" value="76"/>
                <entry>
                    <key><value>英语</value></key>
                          <value>34</value>
                </entry>
            </map>
        </property>
</bean>

 3.3 Set注入 

Set注入时要使用<list>标签来标记注入的值,值要用<value>标签来标记 

<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="tel">
            <set>
                <value>1231322313</value>
                <value>123123123123</value>
                <value>123123123123</value>
            </set>
        </property>
</bean>

3.4 null注入

null注入是比较特别的一种注入,如果我们只是将value属性设置称为null,这样的结果就是将属性的值设置成立null字符串。那如果要设置成null(属性为空)则需要用到<null/>标签

<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="wife">
            <null/>
        </property>
</bean>

3.4 properties注入

这种注入方式是为实体类中的Properties类型的对象进行注入而使用的,在注入时要设置<props>标签和<prop>标签来标记注入内容<props>下有多个<prop>,<prop>是以键值对的形式注入到属性中。

<property name="properties">
            <props>
                <prop key="driver">com.jdbc.cj.mysql.driver</prop>
                <prop key="root">123</prop>
                <prop key="user">1</prop>
            </props>
        </property>

四、c注入和p注入 

注意,这两种注入方式设置xml配置

xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"

其区别是p是通过set访问器进行赋值,c是通过有参构造赋值

<bean id="arr1" class="com.xja.bean.Address" p:province="天津" p:city="天津"/>
<bean id="arr1" class="com.xja.bean.Address" c:province="天津" c:city="天津"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修贤323

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值