(十二)Spring教程——依赖注入之构造函数注入

1.构造函数注入

        构造函数注入是除属性注入外的另一种常用的注入方式,它保证一些必要的属性在Bean实例化时就得到设置,确保Bean在实例化后就可以使用。

1.1按类型匹配入参

        如果任何可用的Car对象都必须提供brand和price的值,若使用属性注入方式,则只能人为地在配置时提供保证而无法在语法级提供保证,这时通过构造函数注入就可以很好地满足这一要求。使用构造函数注入的前提时Bean必须提供带参的构造函数。下面为Car提供一个可以设置brand和price属性的构造函数。

package com.example.servlet001.bean;

//默认构造函数和Setter

public class Car {

    private int maxSpeed;

    private  String brand;

    private Double price;

    public Car(String brand,double price){

        this.brand=brand;

        this.price=price;

    }

    public void setBrand(String brand){

        System.out.println("调用setBrand()设置属性。");

        this.brand=brand;

    }

    public String getBrand(){

        return this.brand;

    }

    public void setMaxSpeed(int maxSpeed){

        this.maxSpeed=maxSpeed;

    }

    public void setPrice(Double price){

        this.price=price;

    }

    public Double getPrice(){

        return this.price;

    }

}

        构造函数注入的配置方式和属性注入的配置方式有所不同,下面在Spring配置文件中使用构造函数注入的配置方式装配这个Car Bean。代码清单如下所示:
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

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

       xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="car1" name="car1" class="com.example.servlet001.bean.Car">

       <constructor-arg type="java.lang.String">

           <value>奥迪A10</value>

       </constructor-arg>

        <constructor-arg type="do

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jerry95270628

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

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

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

打赏作者

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

抵扣说明:

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

余额充值