DI之 setter方法注入

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 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

相关文章
|
9月前
|
Java 开发者 Spring
Spring中获取Bean对象的三种注入方式和两种注入方法
Spring中获取Bean对象的三种注入方式和两种注入方法
|
4月前
|
SQL 安全 关系型数据库
beescms注入
通过 SQL 注入、弱口令爆破和文件上传三种方式对系统进行安全测试的过程。首先,通过手动注入和报错注入获取数据库信息,接着利用弱口令爆破工具尝试登录,最后通过修改 MIME 类型绕过文件上传限制,成功获取 shell。
beescms注入
|
6月前
构造函数注入和 Setter 依赖注入
【8月更文挑战第22天】
76 0
|
6月前
|
设计模式 Java Spring
依赖注入(DI)及其三个类
【8月更文挑战第24天】
72 0
|
9月前
|
XML Java 数据格式
怎么通过通过 p 名称空间配置 bean以及怎么去引用/注入其它 bean 对象--ref和怎么去引用/注入内部 bean 对象-内部 bean 对象
怎么通过通过 p 名称空间配置 bean以及怎么去引用/注入其它 bean 对象--ref和怎么去引用/注入内部 bean 对象-内部 bean 对象
110 0
|
XML Java 数据格式
案例03 基于xml配置的setter方法注入案例
通过setter方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现StudentService调用StudentDao的saveStudent操作。
123 0
|
Java 容器 Spring
构造器注入
构造器注入
|
设计模式
依赖注入和构造器注入的区别
依赖注入和构造器注入的区别
|
XML Java 数据格式
SpringXML实现注入
SpringXML实现注入
SpringXML实现注入
|
Java 关系型数据库 MySQL
如何使用@Value注解为bean的属性赋值呢
如何使用@Value注解为bean的属性赋值呢