Spring笔记7--构造函数通过不同方式值注入

141 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

我的所有spring笔记大集锦 Spring5入门知识整合(持续更新)

在之前的所有笔记里面,我只介绍过最单一的一种注入属性的方法,那就是通过属性标签的name对对象相应属性进行值注入,但对有参构造而言是存在不同注入方式,下面一一归纳下

emm相信学到这里的同学,一些基本的 项目模板创建,bean文件创建,应该会了吧(不累赘

(一切基于maven项目创建模板) 我这里创建了名为Spring-001的模板 在resources文件夹下创建beans.xml文件 并在beans.xml下导入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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

在蓝色java文件夹下创建com.ysj.study包,在该包下创建User类。写入如下代码

package com.ysj.study;

public class User {

    private String name;
    private int age;
    private double money;

    public User(){}
    
    public User(String name, int age, double money) {
        this.name = name;
        this.age = age;
        this.money = money;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", money=" + money +
                '}';
    }
}



在绿色java下创建myTest类 以下是我的结构示意图 在这里插入图片描述

1、有参构造通过name进行值注入

在这里插入图片描述

通过name约束来根据有参构造方法的参数名称进行值注入 在这里插入图片描述

2、有参构造通过type进行值注入

如果某些时候你把参数名称定义的过长,怕写错等乱七八糟的烦恼,那么你可以通过对相关参数类型定位来进行对象值的注入(参数方向是从左到右

在这里插入图片描述 八大基础类型:byte,short,int,long,float,double,char,boolean

输出结果 在这里插入图片描述

3、通过构造方法的参数序号索引进行值注入

在这里插入图片描述 参数方向从左至右,下标从0开始,用index关键字索引 在这里插入图片描述 输出结果 在这里插入图片描述 其实最常用的我觉得还是name吧(不谈注解情况下)

4、小结

1、name:通过有参构造方法参数名称进行值注入 2、type:通过有参构造方法参数类型进行值注入 3、index:通过有参构造方法参数序号索引进行值注入