Spring6梳理6——依赖注入之Setter注入

以上笔记来源:

尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc

目录

一、引言

二、Java方法初始化过程

[2.1 set方法及构造器方法实现Book对象初始化](#2.1 set方法及构造器方法实现Book对象初始化)

三、Spring注入依赖

[3.1 使用set方法进行依赖注入](#3.1 使用set方法进行依赖注入)

[3.2 使用构造器方法进行注入](#3.2 使用构造器方法进行注入)

四、总结


一、引言

依赖注入:

1.类有属性,创建对象过程中,向属性设置值

第一种方式:基于set方法完成

第二种方式:基于构造器完成

二、Java方法初始化过程

2.1 set方法及构造器方法实现Book对象初始化

①生成Book实体类

javascript 复制代码
package com.atguigu.spring6.iocxml.bean;

public class Book {
    private String bname;
    private String author;

    public Book() {
    }

    public String getBname() {
        return bname;
    }

    public void setBname(String bname) {
        this.bname = bname;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public Book(String bname, String author) {
        this.bname = bname;
        this.author = author;
    }

    @Override
    public String toString() {
        return "Book{" +
                "bname='" + bname + '\'' +
                ", author='" + author + '\'' +
                '}';
    }

    public void run() {
        System.out.println("book run...");
    }
    public static void main(String[] args) {
        //set方法注入
        Book book=new Book();
        book.setBname("java");
        book.setAuthor("尚硅谷");
        System.out.println(book);
        //通过构造器注入
        Book book2=new Book("C++","尚硅谷");
        System.out.println(book2);
    }
}

②运行程序,如图所示

三、Spring注入依赖

3.1 使用set方法进行依赖注入

①生成Book实体类

java 复制代码
package com.atguigu.spring6.iocxml.bean;

public class Book {
    private String bname;
    private String author;

    public Book() {
    }

    public String getBname() {
        return bname;
    }

    public void setBname(String bname) {
        this.bname = bname;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public Book(String bname, String author) {
        this.bname = bname;
        this.author = author;
    }

    @Override
    public String toString() {
        return "Book{" +
                "bname='" + bname + '\'' +
                ", author='" + author + '\'' +
                '}';
    }

    public void run() {
        System.out.println("book run...");
    }
}

②创建bean-di.xml文件

创建一个名为book的bean,并使用<property></property>标签对bean进行依赖注入

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">
    <!--
配置HelloWorld所对应的bean,即将HelloWorld的对象交给Spring的IOC容器管理
通过bean标签配置IOC容器所管理的bean
属性:
    id:设置bean的唯一标识
    class:设置bean所对应类的全路径
-->
        <bean id="book" class="com.atguigu.spring6.iocxml.bean.Book">
            <property name="bname" value="零基础学Java"></property>
            <property name="author" value="haozihua"></property>
        </bean>

</beans>

③ 创建测试类

java 复制代码
package com.atguigu.spring6.iocxml.bean;

import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestBook_di {
    @Test
    public void testBook(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean-di.xml");
        Book book = context.getBean("book", Book.class);
        book.run();
        System.out.println(book);
    }
}

④运行截图如下

3.2 使用构造器方法进行注入

①生成Book实体类(如3.1所示)

②添加XML配置文件

XML 复制代码
    <!--构造方法注入-->
    <bean id="bookCon" class="com.atguigu.spring6.iocxml.bean.Book">
        <constructor-arg name="bname" value="不想学Java"></constructor-arg>
        <constructor-arg name="author" value="hhhhhh"></constructor-arg>
    </bean>

③在测试类中创建新的测试方法

java 复制代码
    @Test
    public void testBookCon(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean-di.xml");
        Book book = context.getBean("bookCon", Book.class);
        book.run();
        System.out.println(book);
    }

④运行结果如图所示

四、总结

本文主要介绍了Spring依赖注入的两种方式,set方法注入和构造方法注入,都需要创建被注入的实体类,之后使用bean的XML文件进行配置属性,注入依赖

相关推荐
阿飞不想努力几秒前
文件上传原理与实操
java·spring boot·vue·文件上传
Cx330❀几秒前
线程进阶实战:资源划分与线程控制核心指南
java·大数据·linux·运维·服务器·开发语言·搜索引擎
人道领域1 分钟前
【黑马点评日记02】:Session+ThreadLocal实现短信登录
java·开发语言·spring·tomcat·intellij-idea
Bat U7 分钟前
JavaEE|计算机是如何工作的
java·人工智能
许彰午10 分钟前
# 政务表单动态建表?运行时DDL引擎,前端拖完字段后端直接建
java·前端·后端·架构·政务
我登哥MVP12 分钟前
【Spring6笔记】 - 13 - 面向切面编程(AOP)
java·开发语言·spring boot·笔记·spring·aop
宸津-代码粉碎机12 分钟前
Spring Boot 4.0 进阶实战+源码解析系列(持续更新)—— 从落地到源码,搞定面试与工作
java·人工智能·spring boot·后端·python·面试
沐雪轻挽萤13 分钟前
2. C++17新特性-结构化绑定 (Structured Bindings)
java·开发语言·c++
java1234_小锋13 分钟前
Java高频面试题:Kafka的消费消息是如何传递的?
java·开发语言·mybatis
滴滴答答哒16 分钟前
c#将平铺列表转换为树形结构(支持孤儿节点作为独立根节点)
java·前端·c#