spring中给属性赋值的方式

当把创建对象的权力交给spring之后,设置bean的属性值的方式,总结如下。

方式一:通过构造函数给属性赋值

    <!--  1) 通过构造函数

               value:属性值,在没有设置index和type时,设置value值的类型和value的顺序要和构造函数参数类型的顺序一致

               index:设置参数在构造函数参数中的索引,从0开始

               type  :设置参数的类型,写全限定名

    -->
    <bean id="user1" class="User" scope="prototype">
        <constructor-arg value="100" index="0" type="java.lang.Integer"></constructor-arg>
        <constructor-arg value="Tom" index="1" type="java.lang.String"></constructor-arg>

    </bean>

方式二:通过set方法给属性赋值(在spring的bean中使用<property>标签)

<!-- dao instance -->
    <bean id="userDao" class="UserDao"></bean>

    <!-- service instance -->
    <bean id="userService" class="UserService">
        <property name="userDao" ref="userDao"></property>
    </bean>
    
    <!-- action instance -->
    <bean id="userAction1" class="UserAction">
        <property name="userService" ref="userService"></property>
    </bean>
<!--上下代码编写目的都一样,下面的这种写法虽然好看点,但是不便于调试,不便于复用-->
    <!-- ##############内部bean############## -->
    <bean id="userAction2" class="UserAction">
        <property name="userService">
            <bean class="UserService">
                <property name="userDao">
                    <bean class="UserDao"></bean>
                </property>
            </bean>
        </property>
    </bean>

方式三:通过p命名空间给属性赋值

<!-- 给对象属性注入值: # p 名称空间给对象的属性注入值 (spring3.0以上版本才支持) -->
    <bean id="userDao" class="UserDao"></bean>
    <!-- p:userDao-ref的值为基本类型或字符串类型时,可以使用p:userDao="xxx"直接赋值 -->
    <bean id="userService" class="UserService" p:userDao-ref="userDao"></bean>
    <bean id="userAction" class="UserAction" p:userService-ref="userService"></bean>

    <!-- 传统的注入: <bean id="user" class="User" > <property
        name="name" value="xxx"></property> </bean> -->
    <!-- p名称空间优化后 -->
    <bean id="user" class="cn.itcast.c_property.User" p:name="Jack" p:id="123"></bean>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值