加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【Spring学习08】依赖配置:复合属性

发布时间:2020-12-14 01:38:25 所属栏目:百科 来源:网络整理
导读:本文博客地址:http://www.jb51.cc/article/p-hhahdidx-bps.html(转载请注明出处) 接着上篇《【Spring学习07】依赖配置:内部对象 》的例子来。其实order的实例化还可以用复合属性来表示: bean id = "order" class = "twm.spring.start.Order" property n

本文博客地址:http://www.52php.cn/article/p-hhahdidx-bps.html(转载请注明出处)

接着上篇《【Spring学习07】依赖配置:内部对象 》的例子来。其实order的实例化还可以用复合属性来表示:

<bean id="order" class="twm.spring.start.Order">
    <property name="customer.name" value="陈先生" />
    <property name="customer.address" value="深圳南山区" />

    <property name="orderno" value="201799777799"></property>
    <property name="notifyservice" ref="notify2"></property>
</bean>
<bean id="notifyfactory" class="twm.spring.start.NotifyFactory" />
<bean id="notify2" factory-bean="notifyfactory" factory-method="getNotifyService" />

customer.namecustomer.address就叫复合属性。
用复合属性,必须保证在order构造函数执行后,customer不能为null,否则抛异常org.springframework.beans.NullValueInNestedPathException

因此这里要注意的,就是order的无参构造函数中是new了一个对象的(开始我也没有注意,而是报了错后才想起要加上的
Order类:

public class Order {
    /*comstomer和notifyservice都是Order的内部对象*/
    private Customer customer;
    private String orderno;
    private NotifyService notifyservice;

    public Order(){
        //new了一个对象的
        this.customer=new Customer();
    }
    public Order(Customer customer,String orderno,NotifyService notifyservice) {
        super();
        this.customer = customer;
        this.orderno = orderno;
        this.notifyservice = notifyservice;
    }

    //getter and setter methods......

    /*订单支付完成后,系统通知老板*/
    public void PaySuccess(){
        notifyservice.sendMessage("客户"+customer.getName()+"完成订单"+orderno+"付款,共人民币:97.5元");
    }
}

如果删掉this.customer=new Customer();这句,那么就会报错了:
Caused by: org.springframework.beans.NullValueInNestedPathException

本文博客地址:http://www.52php.cn/article/p-hhahdidx-bps.html(转载请注明出处)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读