DI之 setter方法注入

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 属性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

相关文章
|
8月前
|
Java 开发者 Spring
Spring中获取Bean对象的三种注入方式和两种注入方法
Spring中获取Bean对象的三种注入方式和两种注入方法
|
2月前
|
SQL 关系型数据库 MySQL
注入
【11月更文挑战第17天】
39 4
|
5月前
构造函数注入和 Setter 依赖注入
【8月更文挑战第22天】
63 0
|
5月前
|
设计模式 Java Spring
依赖注入(DI)及其三个类
【8月更文挑战第24天】
60 0
|
8月前
|
XML Java 数据格式
怎么通过通过 p 名称空间配置 bean以及怎么去引用/注入其它 bean 对象--ref和怎么去引用/注入内部 bean 对象-内部 bean 对象
怎么通过通过 p 名称空间配置 bean以及怎么去引用/注入其它 bean 对象--ref和怎么去引用/注入内部 bean 对象-内部 bean 对象
98 0
|
XML Java 数据格式
案例03 基于xml配置的setter方法注入案例
通过setter方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现StudentService调用StudentDao的saveStudent操作。
104 0
|
Java 容器 Spring
构造器注入
构造器注入
|
设计模式
依赖注入和构造器注入的区别
依赖注入和构造器注入的区别
|
XML Java 数据格式
SpringXML实现注入
SpringXML实现注入
SpringXML实现注入
|
Java Spring
构造方法注入和设值注入有什么区别?
构造方法注入和设值注入有什么区别?
构造方法注入和设值注入有什么区别?