DI之 setter方法注入

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: 属性setter方法注入是Spring框架中最常用的依赖注入方式。通过在类中定义setter方法,Spring容器可以通过这些方法为对象属性赋值。示例中创建了User2实体类,并在Spring配置文件中设置了id、name和pwd属性的值,最后通过测试类输出User2对象信息。

属性setter方法注入是Spring最主流的注入方法,这种注入方法简单、直观,它是在被注入的类中声明一个setter方法,通过setter方法的参数注入对应的值。

案例:

① 创建User2实体,配置setter方法

package com.lq.entities;
/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-11-27
 * @Description: 用户2
 * @Version: 1.0
 */
public class User2 {
    private int id;
    private String name;
    private String pwd;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    @Override
    public String toString() {
        return "User2{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

② 创建applicationContext-user2.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="user2" class="com.lq.entities.User2">
        <property name="id" value="2"></property>
        <property name="name" value="lq2"></property>
        <property name="pwd" value="456"></property>
    </bean>
</beans>

③ 测试类

package com.lq.test;
import com.lq.entities.User2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-11-27
 * @Description: 测试2
 * @Version: 1.0
 */
public class TestUser2 {
    public static void main(String[] args)
    {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-user2.xml");
        User2 user2 = applicationContext.getBean("user2", User2.class);
        System.out.println(user2);
    }
}

④ 结果如下:

image.png

相关文章
|
7月前
构造函数注入和 Setter 依赖注入
【8月更文挑战第22天】
78 0
|
Java Spring
Spring——setter方式注入和构造函数方式注入
     先写一个比较常见的结构:            其中UserDao跟UserManagerImpl是层与层之间的接口。       下面用这些类来演示setter方式注入跟构造函数注入来解决Manager层注入Dao问题。
1394 0
|
7月前
|
设计模式 Java Spring
依赖注入(DI)及其三个类
【8月更文挑战第24天】
78 0
|
Java Spring
第二章 IoC Setter注入
<p lang="zh-CN" align="JUSTIFY" style="margin-bottom:0cm; widows:0; orphans:0"><span style="color:#00000a"><span style="font-family:Calibri,serif"><span style="font-size:12px; font-size:10pt"><spa
1211 0
|
XML Java 数据格式
案例03 基于xml配置的setter方法注入案例
通过setter方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现StudentService调用StudentDao的saveStudent操作。
128 0
|
Java 容器 Spring
构造器注入
构造器注入
|
设计模式
依赖注入和构造器注入的区别
依赖注入和构造器注入的区别
|
图形学 容器
Unity TIP2: Configuration之构造器注入、属性注入、方法注入
1:本篇基于如下的场景 a:主项目只和接口项目相关,如下: 也即,ConsoleApplication1只和IBiz和IDal相关。顺便说一下,为了演示注入,IDal要用到IBiz项目。 b:类结构如下: SampleClass1,SampleClass2,SampleClass3,都继承自IClass 其中SampleClass1构造器依赖注入ISomeBiz的一个实例, 其中SampleClass2属性依赖注入ISomeBiz的一个实例, 其中SampleClass3方法依赖注入ISomeBiz的一个实例。
831 0
|
10月前
|
Java 开发者 Spring
Spring中获取Bean对象的三种注入方式和两种注入方法
Spring中获取Bean对象的三种注入方式和两种注入方法
|
容器
什么是依赖注入?有哪些注入方式?
什么是依赖注入?有哪些注入方式?
187 0