spring03:bean的自动装配

spring03:bean的自动装配


文章目录

  • spring03:bean的自动装配
  • 前言:
  • 一、 在xml中显示的配置:
      • 分析:
    • People类:
    • Cat类:
    • Dog类:
    • 1. 在xml中显示的配置:
  • 二、 隐式的自动装配bean【重要】
      • 分析:
    • 1. byName:bean id
      • byname的时候,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致
    • 2. byType:bean class
      • bytype的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型一致
  • 三、 使用注解实现自动装配:@Autowired + @Qualifier(value="")
    • 分析:
  • 总结


前言:

在这里插入图片描述


提示:以下是本篇文章正文内容:

一、 在xml中显示的配置:

分析:

在这里插入图片描述



People类:

public class People {
    private Cat cat;
    private Dog dog;
    private String name;

    public Cat getCat() {
        return cat;
    }

    public void setCat(Cat cat) {
        this.cat = cat;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "People{" +
                "cat=" + cat +
                ", dog=" + dog +
                ", name='" + name + '\'' +
                '}';
    }
}

Cat类:

public class Cat {
    public void shut(){
        System.out.println("miaomiaomiao");
    }
}

Dog类:

public class Dog {
    public void shut(){
        System.out.println("wangwangwang");
    }
}

1. 在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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

	// cat 和 dog的 bean对象:
	<bean id="cat" class="com.huxiao.pojo.Cat"></bean>
	<bean id="dog" class="com.huxiao.pojo.Dog"></bean>
	// people的 bean对象:
	<bean id="people" class="com.huxiao.pojo.People">(看这里)
		<property name="name" value="胡潇"></property>
		<property name="cat" ref="cat"></property>
		<property name="dog" ref="dog"></property>
	</bean>
</beans>


二、 隐式的自动装配bean【重要】

分析:

在这里插入图片描述



1. byName:bean id

byname的时候,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致

<?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">

	// cat 和 dog的 bean对象:
	<bean id="cat" class="com.huxiao.pojo.Cat"></bean>
	<bean id="dog" class="com.huxiao.pojo.Dog"></bean>
	// people的 bean对象:
	<bean id="people" class="com.huxiao.pojo.People" autowire="byName">(看这里)
		<property name="name" value="胡潇"></property>
	</bean>
</beans>

2. byType:bean class

bytype的时候,需要保证所有bean的class唯一,并且这个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">

	// cat 和 dog的 bean对象:
	<bean id="cat" class="com.huxiao.pojo.Cat"></bean>
	<bean id="dog" class="com.huxiao.pojo.Dog"></bean>
	// people的 bean对象:
	<bean id="people" class="com.huxiao.pojo.People" autowire="byType">(看这里)
		<property name="name" value="胡潇"></property>
	</bean>
</beans>


三、 使用注解实现自动装配:@Autowired + @Qualifier(value=“”)

分析:

在这里插入图片描述



在这里插入图片描述



在这里插入图片描述


总结

提示:这里对文章进行总结:

💕💕💕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/547658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2048天的创作旅程:坚持与成长

纪念成为创作者的2048天 一、引言二、坚持创作三、创作心情四、技术成长五、小结 &#x1f4a1;一个热爱分享高性能服务器后台开发知识的博主&#xff0c;目标是通过理论与代码实践的结合&#xff0c;让世界上看似难以掌握的技术变得易于理解与掌握。技能涵盖了多个领域&#x…

R语言使用installr包对R包进行整体迁移

今天分享一个R语言的实用小技巧&#xff0c;如果咱们重新安装了电脑&#xff08;我重装了电脑&#xff09;或者因为需要卸载旧版本的R软件&#xff0c;安装新版本的R&#xff0c;那么必然会造成R包的库缺失&#xff0c;需要重新下载&#xff0c;有些还不是官方的R包&#xff0c…

页缓存(PageCache)和预读机制(readahead )

页缓存&#xff08;PageCache)和预读机制&#xff08;readahead &#xff09; 页缓存&#xff08;PageCache)是操作系统&#xff08;OS&#xff09;对文件的缓存&#xff0c;用于加速对文件的读写。 page 是内存管理分配的基本单位&#xff0c; Page Cache 由多个 page 构成&…

linux项目部署 解决Nginx浏览器刷新出现404,但是不刷新是能够正常请求成功

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 提示&#xff1a;部署成功&#xff0c;访问登录页面登录也成功&#xff0c;强制刷新浏览器报404问题 进入到系统 刷新页面 解决流程 参考如图&#xff0c;再下面添加这条配置信息 location / {try_file…

如何用好PMP项目管理知识

PMP(Project Management Professional&#xff0c;项目管理专业人士)是由国际项目管理协会&#xff08;PMI&#xff09;颁发的全球最高级别的项目管理认证&#xff0c;认证需要通过严格的考试&#xff0c;并具备相应的工作经验和教育背景。 作为一名咨询师&#xff0c;我们经常…

攻防世界08-backup

8-backup 网页添加后缀下载源文件 在链接后面追加index.php.bak,会出现软件下载&#xff0c;下载后&#xff0c;用记事本的方式打开 此时flag就出现了 kali扫描 当你不知道后缀是什么的时候&#xff0c;可以用kali进行扫描 记得更改源为国内的镜像源 vim /etc/apt/sources.…

配置linux的oracle 21c启停服务

一、配置启停 1、使用root用户登陆 su - root 2、修改oratab文件 修改oratab文件&#xff0c;将红框里面的N改为“Y”&#xff0c;使启停脚本能够生效 vi /etc/oratab 3、验证 配置好后就能够使用 dbshut 停止服务 和 dbstart 启动服务 了 2.1启动服务 su - oracle dbstart…

哈希函数的简单介绍

哈希函数&#xff1a; hash: 把....弄糟(乱) 又称为散列函数&#xff0c;杂凑函数 什么是哈希表&#xff1f; 哈希表简单来说可以看作是是对数组的升级&#xff0c;&#xff08;也有不少人认为哈希表的本质就是数组&#xff09;&#xff0c;那么哈希表和数组的具体联系和区…

4.Spring AOP

4.1 Spring AOP的基本概念 4.1.1 AOP的概念 在业务处理代码中&#xff0c;通常都有日志记录、性能统计、安全控制、事务处理、异常处理等操作。尽管使用OOP可以通过封装或继承的方式达到代码的重用&#xff0c;但仍然存在同样的代码分散到各个方法中。因此&#xff0c;采用OO…

Linux学习-数据库

数据库软件: 关系型数据库: Mysql Oracle SqlServer Sqlite 非关系型数据库&#xff1a; Redis NoSQL 1.数组、链表、文件、数据库 数组、链表: 内存存放数据的方式(代码运行结束、关机数据丢失) 文件、…

网络安全赛事中开源威胁情报的妙用

写在前面 近期参与了一场网络安全赛事&#xff0c;一些题目的解法涉及到开源网络威胁情报&#xff0c;遂对相关题目及涉及到的知识点进行分析。 什么是OSCTI 开源网络威胁情报 (Open-Source Cyber Threat Intelligence,OSCTI)是详细描述针对某个组织网络安全威胁的数据。OSC…

【go从入门到精通】探索延迟调用(defer)用法和陷阱

作者简介&#xff1a; 高科&#xff0c;先后在 IBM PlatformComputing从事网格计算&#xff0c;淘米网&#xff0c;网易从事游戏服务器开发&#xff0c;拥有丰富的C&#xff0c;go等语言开发经验&#xff0c;mysql&#xff0c;mongo&#xff0c;redis等数据库&#xff0c;设计模…

flink network buffer

Flink 的网络协议栈是组成 flink-runtime 模块的核心组件之一&#xff0c;是每个 Flink 作业的核心。它连接所有 TaskManager 的各个子任务(Subtask)&#xff0c;因此&#xff0c;对于 Flink 作业的性能包括吞吐与延迟都至关重要。与 TaskManager 和 JobManager 之间通过基于 A…

Linux标准c库操作(4.15)

fopen函数“const char *mode”参数选项。 结果&#xff1a; 标准库c写入结构体到文件&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <string.h> #in…

如何在Vue3中使用H.265视频EasyPlayer.js流媒体播放器?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

Java | Leetcode Java题解之第28题找出字符串中第一个匹配项的下标

题目&#xff1a; 题解&#xff1a; class Solution {public int strStr(String haystack, String needle) {int n haystack.length(), m needle.length();if (m 0) {return 0;}int[] pi new int[m];for (int i 1, j 0; i < m; i) {while (j > 0 && needl…

Linux学习之路 -- 进程篇 -- PCB介绍 -- 进程的孤儿和僵尸状态

前面介绍了进程的各种状态&#xff0c;下面介绍比较特殊的两种状态 -- 孤儿和僵尸&#xff08;僵死&#xff09;。 一、僵尸状态 我们创建进程的目的其实就是想要进程帮我们执行一些任务&#xff0c;当任务被执行完后&#xff0c;进程的使命其实就已经完成了。此时我们就需要…

牛客Linux高并发服务器开发学习第一天

Linux开发环境搭建 安装Xshell 7远程连接虚拟机的Ubuntu 安装Xftp 7可以传输文件(暂时还没使用) 安装VMware Tools可以直接从Windows系统向虚拟机Linux系统拖拽文件实现文件交互。 安装CScode可以远程连接Linux系统进行代码的编写。&#xff08;Windows系统与Linxu系统公钥…

(十)C++自制植物大战僵尸游戏设置功能实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/m0EtD 游戏设置 游戏设置功能是一个允许玩家根据个人喜好和设备性能来调整游戏各项参数的重要工具。游戏设置功能是为了让玩家能够根据自己的需求和设备性能来调整游戏&#xff0c;以获得最佳的游戏体验。不同的游戏和平…

【机器学习300问】69、为什么深层神经网络比浅层要好用?

要回答这个问题&#xff0c;首先得知道神经网络都在计算些什么东西&#xff1f;之前我在迁移学习的文章中稍有提到&#xff0c;跳转链接在下面&#xff1a; 为什么其他任务预训练的模型参数&#xff0c;可以在我这个任务上起作用&#xff1f;http://t.csdnimg.cn/FVAV8 …