Spring自动装配

news2024/11/23 13:35:44

自动装配的三种方式

  • 一、xml方式自动装配
  • 二、 按类型自动装配
  • 三、使用注解

一、xml方式自动装配

byName: 会自动在容器上下文查找,和自己对象set方法后面的值对应的bean id(通过id匹配)

//实体类
@Data
public class Pepole {
    private String name;
    private Books books;
    private Hobbies hobbies;
    <bean id="books" class="com.lmy.pojo.Books"/>
    <bean id="hobbies" class="com.lmy.pojo.Hobbies"/>

    <bean id="pepole" class="com.lmy.pojo.Pepole" autowire="byName">
        <property name="name" value="zhangSan"/>
    </bean>

二、 按类型自动装配

byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean(通过class匹配)
注意:使用autowire byType首先需要保证:同一类型的bean对象,在spring容器中唯一。如果不唯一,会报不唯一的异常。

    <bean id="books" class="com.lmy.pojo.Books"/>
    <bean id="hobbies" class="com.lmy.pojo.Hobbies"/>

    <bean id="pepole" class="com.lmy.pojo.Pepole" autowire="byType">
        <property name="name" value="zhangSan"/>
    </bean>

三、使用注解

@Autowied装配方式
按类型装配(默认使用的装配方式)。
按名称装配(结合@Qualifier注解使用)。

public class Pepole {
    private String name;
    @Autowired
    @Qualifier("books1")
    private Books books;
    @Autowired
    private Hobbies hobbies;
}
	<!--开启属性注解支持!-->
    <context:annotation-config/>

    <bean id="books2" class="com.lmy.pojo.Books"/>
    <bean id="books1" class="com.lmy.pojo.Books"/>
    <bean id="hobbies" class="com.lmy.pojo.Hobbies"/>
    <bean id="pepole" class="com.lmy.pojo.Pepole"/>

@Resource装配方式
@Resource指定按type自动装配:

    @Resource(type = Books.class)
    private Books books;

@Resource指定按name自动装配:

    @Resource(name = "books")
    private Books books;

@Autowired与@Resource区别
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GameFrameWork框架(Unity3D)使用笔记(八) 实现场景加载进度条

前言&#xff1a; 游戏在转换场景的时候&#xff0c;需要花费时间来加载相关的资源。而这个过程往往因为游戏场景的规模和复杂度以及玩家电脑配置的原因花费一小段时间&#xff08;虽然这个项目里用不到&#xff09;。 所以&#xff0c;如果这一小段时间&#xff0c;画面就卡在…

计算机网络 —— TCP篇 三次握手与四次挥手

计算机网络系列文章目录 TCP篇 三次握手四次挥手 socket 文章目录计算机网络系列文章目录前言4.1 tcp三次握手与四次挥手面试题4.1.1 TCP的基本认识TCP头部为什么需要tcp&#xff0c;tcp工作在哪一层什么是tcp什么是tcp连接如何唯一确定一个tcp连接(tcp&udp比较) UDP 和 T…

机器学习【西瓜书/南瓜书】--- 第1章绪论+第二章模型选择和评估(学习笔记+公式推导)

【西瓜书南瓜书】task01: 第1、2章&#xff08;2天&#xff09; 第一章 绪论 主要符号表 下述这些符号在本书中将频繁的使用&#xff0c;务必牢记于心各个特殊符号所具有的的含义 &#x1f31f;对上述部分定义做一下解释&#xff1a; 向量有维度&#xff0c;其中的元素是有…

路由器NAT典型配置

1.组网需求内部网络中IP地址为10.110.10.0/24的用户可以访问Internet&#xff0c;其它网段的用户则不能访问Internet。外部的PC可以访问内部的服务器。公司具有202.38.160.100/24至202.38.160.105/24六个合法的IP地址。选用202.38.160.100作为公司对外的IP地址&#xff0c;WWW服…

stm32平衡小车(2)-----编码器电机驱动

前言&#xff1a;之前做arduino小车的时候使用的是L298N电机&#xff0c;没有用过编码器&#xff0c;这次第一次用编码器&#xff0c;还是比较懵圈&#xff0c;记录一下学的整个过程。 1.编码器的简介 霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字…

下载整个网站

使用Cyotek WebCopy下载整个网站一、下载网站复制所需软件&#xff1a;二、打开Cyotek WebCopy&#xff0c;然后下载网站系统环境&#xff1a;win10 所需工具&#xff1a;Cyotek WebCopy 一、下载网站复制所需软件&#xff1a; https://www.cyotek.com/cyotek-webcopy/downloa…

3-3存储系统-高速缓冲存储器Cache

文章目录一.概述二.Cache与主存的映射方式1.直接映射2.全相联映射3.组相联映射三.Cache中主存块的替换算法1.随机算法RAND2.先进先出算法FIFO3.最近最少使用算法LRU4.最不经常使用算法LFU四.Cache写策略1.写命中2.写不命中一.概述 高速缓冲存储器&#xff08;Cache&#xff09…

labelme使用labelme2voc.py忽略部分标签生成VOC/coco类型数据集(Ignore a label in json file)

一&#xff1a;背景和问题描述这是一个比较小众&#xff0c;且查找全网未有答案的问题。在使用labelme标注数据之后&#xff0c;生成了json文件。在利用json文件生成可用于训练分割模型的voc或者coco数据集时&#xff0c;可以使用labelme中自带的示例文件labelme2voc.py&#x…

第二章.线性回归以及非线性回归—弹性网

第二章.线性回归以及非线性回归 2.14 弹性网&#xff08;Elastic Net&#xff09; Elastic Net是一种使用L1和L2作为正则化矩阵的线性回归模型&#xff0c;这种组合用于只有很少的权重非零的稀疏模型。 当多个特征和另一个特征相关时&#xff0c;弹性网络非常有用&#xff0c;L…

C++ STL简介

文章目录前言一、STL概述二、STL历史三、STL六大组件功能与运用前言 对C/C学习感兴趣的可以看看这篇文章哦&#xff1a;C/C教程 一、STL概述 在软件行业&#xff0c;一直都希望建立一种可以重复运用的东西和一种可以制造出“可重复使用的东西”的方法&#xff0c;来让程序员…

什么是基于模型设计(MBD)?

MBD(Model based Design)是什么&#xff1f; 随着嵌入式行业的快速发展&#xff0c;MBD作为解决专家紧缺、国内解决方案匮乏的新软件开发方式备受关注。 MBD是一种通过建模自动生成代码的&#xff08;Auto-generation Code&#xff09;开发方式。 可以说它与如何用传统的C/C等计…

CANoe-仿真总线上的红蓝线、“CANoe DEMO“ license下的软件限制

1、仿真总线上的红蓝线 最近有人问我一个问题,就是Simulation Setup界面下的仿真网络里,有两条线:红线、蓝线。它们表示什么意思呢? 有人可能首先想到:会不会是代表CAN总线的两条物理连线? 那LIN网络呢?LIN网络属于单条线,它在仿真网络里应该显示一条线咯? LIN总线也…

ThreadLocal 详解

ThreadLocal 详解 1. ThreadLocal简介 1.1 官方介绍 /*** This class provides thread-local variables. These variables differ from* their normal counterparts in that each thread that accesses one (via its* {code get} or {code set} method) has its own, indep…

【go语言http2.0代码实现】

go语言之http2.0Serverclient之前主要说的是基于http1.1的。然后因为http1.1存在的局限性&#xff0c;现在http2.0越来越流行&#xff0c;这里来根据go的源码来分析一下http2.0的实现。首先需要注意的是http2.0是在https的基础之上&#xff0c;因此推荐有https的基础或者看前面…

如何在Microsoft Teams中发布作业

之前我们介绍了在Microsoft Teams中收发批改作业的基础使用方法。今天我们会在“发布作业”这个方面上进行详细介绍。 首先我们进入Teams的“作业”点击“创建”。 选择“作业”。 可以通过“附加”的形式发布已创建的作业文件。 可以通过选择OneDrive的形式来选取里面的文件发…

BOSS直聘依然面临监管和估值过高的风险

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 BOSS直聘是中国重新开放和经济复苏的受益者 由于中国已经全面放开&#xff0c;所以&#xff0c;全球各地的分析师们正在上调对中国2023年经济增长的预测。 比如CNBC的文章就提到摩根士丹利&#xff08;MS&#xff09;的经…

Pandas 数据结构 - Series

前言Pandas Series 类似表格中的一个列&#xff08;column&#xff09;&#xff0c;类似于一维数组&#xff0c;可以保存任何数据类型。Series 由索引&#xff08;index&#xff09;和列组成&#xff0c;函数如下&#xff1a;pandas.Series( data, index, dtype, name, copy)参…

基于springboot,vue电影院售票系统

开发工具&#xff1a;IDEA服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8项目构建&#xff1a;maven数据库&#xff1a;mysql5.7系统用户前台和管理后台两部分&#xff0c;项目采用前后端分离前端技术&#xff1a;vue elementUI服务端技术&#xff1a;springbootmybatis项目功…

Java 线程的几种状态及其切换的条件

1.线程状态及其含义2.状态之间切换的条件1.线程状态及其含义 NEW(初始化): 表示创建了Thread对象,但是还没有调用start (也就是系统内核还是没有创建对应的PCB) RUNNABLE(运行): 表示可运行的.线程创建后,调用了start方法,等待CPU的调度或者正在CPU中运行. BLOCKED(阻塞): 表…

【白皮书】PROFIBUS网络诊断

PROFIBUS标准已有30多年的历史&#xff0c;如今已是一种成熟的数字现场总线技术。PROFIBUS通常用于工厂和过程自动化行业&#xff0c;也可用于食品、饮料或制药等混合行业。此外&#xff0c;其还适用于楼宇自动化和轨道交通等领域。可见&#xff0c;PROFIBUS是一种可服务于这些…