Spring依赖注入原理(DI)

本文详细介绍了Spring框架中的三种依赖注入方式:1) 使用setter方法的setter注入,通过配置文件设置属性值;2) 有参构造器注入,通过构造函数传递参数创建对象;3) p名称空间注入,简化XML配置,直接在bean标签内注入属性。这些方法使得代码更加灵活和解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DI: 依赖注入

第一种注入方式: 使用set方法进行注入(setter注入)

(1)创建类, 定义属性和对应的set方法

/**
 * 演示使用setter方法进行注入属性
 */
public class Book {
    //创建属性
    private String bname;
    private String bauthor;
    //创建属性对应的set方法
    public void setBname(String bname) {
        this.bname = bname;
    }

    public void setBauthor(String bauthor) {
        this.bauthor = bauthor;
    }
}

(2)在Spring的配置文件中配置对象创建, 配置属性注入

<!--set方法注入属性-->
<bean id="book" class="com.lqk.spring.Book">
    <!--使用property完成属性注入
        name: 类里面属性名称
        value: 向属性注入的值
    -->
    <property name="bname" value="西游记"></property>
    <property name="bauthor" value="吴承恩"></property>
</bean>

第二种注入方式: 使用有参构造进行注入(构造器注入)

(1)创建类, 定义属性, 创建有参构造

/**
 * 使用有参构造注入
 */
public class Orders {
    //属性
    private String oname;
    private String address;

    //有参构造
    public Orders(String oname, String address) {
        this.oname = oname;
        this.address = address;
    }
}

(2)在Spring配置文件中进行配置

<!--有参构造方法注入属性-->
<bean id="orders" class="com.lqk.spring.Orders">
    <constructor-arg name="oname" value="键盘"></constructor-arg>
    <constructor-arg name="address" value="江西"></constructor-arg>
</bean>

第三种注入方式: p名称空间注入 (了解)

使用p名称空间注入, 可以简化基于xml配置方式
(1)添加p名称空间在配置文件中

<?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
       http://www.springframework.org/schema/beans/spring-beans.xsd">

(2)进行属性注入, 在bean标签里面进行操作

<!--p名称空间注入-->
<bean id="book2" class="com.lqk.spring.Book" p:bname="红楼梦" p:bauthor="曹雪芹"></bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值