Spring依赖注入为字面量类型赋值的方式

Spring依赖注入为字面量类型赋值的方式

为字面量赋值一般用两种方式处理setter注入和构造器注入(不常用),另外字面量中涉及到特殊字符的赋值,有两种解决方式:用其对应的标识和XML中的一个特殊的标签CDATA节

下面是具体的代码解释

1.setter注入
    <bean id="studentTwo" class="com.qcw.spring.pojo.Student">

        //property:通过成员变量的set方法进行赋值
        //name:设置需要赋值的属性名(和set方法有关)
        //value:设置为字面量属性所赋的值

        <property name="sid" value="1001"></property>
        <property name="sname" value="张三"></property>
        <property name="age" value="23"></property>
        <property name="gender" value="男"></property>
    </bean>
1.构造器注入

这里由于构造器注入可以直接利用构造方法实现赋值,不过由此产生了当在Student类中由多个构造类可以匹配时无法匹配我们想要的属性,解决方式就是在constructor-arg标签中加上name属性。如下所示

	//构造方法
    public Student(Integer sid, String sname, String gender, Integer age) {
        this.sid = sid;
        this.sname = sname;
        this.gender = gender;
        this.age = age;
    }
    public Student(Integer sid, String sname, String gender, Double score) {
        this.sid = sid;
        this.sname = sname;
        this.gender = gender;
        this.score = score;
    }
    <bean id="studentThree" class="com.qcw.spring.pojo.Student">
        <constructor-arg value="1002"></constructor-arg>
        <constructor-arg value="李四"></constructor-arg>
        <constructor-arg value="女"></constructor-arg>
        <constructor-arg value="24" name="age"></constructor-arg>
    </bean>
1.特殊值处理

这里两种方式实现"<王五>"给sname的赋值

    <bean id="studentFour" class="com.qcw.spring.pojo.Student">
        <property name="sid" value="1003"></property>

            //<:&lt;(小于号所对应的标识)   >:&gt;(大于号所对应的标识)
            //CDATA节其中的内容会原样解析<![CDATA[]]>,CDATA节是XML中的一个特殊的标签,因此不能写在一个属性中

        //<property name="sname" value="&lt;王五&gt;"></property>
        <property name="sname">
            <value><![CDATA[<王五>]]></value>
        </property>
        <property name="gender">
            <null/>
        </property>
    </bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值