Spring的注解开发-依赖注入相关注解

news/2025/2/22 15:41:48/

在之前的学习中,Bean的依赖注入主要是通过xml配置文件中<property>来完成属性的注入操作,在往期的bean创建的文章中,都是以xml方式来完成bean对象的配置。

Spring主要提供以下注解,用于Bean内部进行属性注入

  • 注解用途
    @Autowired(使用最多自动装配一个 bean 对象,可以用在构造方法、Setter 方法、普通方法或字段上。根据类型注入引用数据,如果同一类型的bean有多个,再尝试根据引用数据名称进行二次匹配,如果匹配不成功,再报错。
    @Qualifier与 @Autowired 合用,用于指定需要注入的具体实现类的名称
    @Resource与 @Autowired 类似,用于自动装配一个 bean 对象,但是它可以根据 bean 的名称或类型进行注入。不指定注入名称时,根据类型进行注入(等同于@Autuwied),如果指定名称,根据名称注入(等同于@Autowired和@Qualifier)
    @Value用于注入简单类型或字符串等值类型,也可以用于读取配置文件中的值。一般配合el表达式使用
    @Inject与 @Autowired 类似,也是用于自动装配一个 bean 对象。不过它需要使用 javax.inject.Inject 注解,并且功能比较简单。

具体示例代码如下

  • @Autowired和@@Qualifier
  • package com.example.Service.Impl;import com.example.DAO.UserDAO;
    import com.example.Service.UserService;
    import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service("userService")
    public class UserServiceImpl implements UserService {@Resource(name = "userDAO2")private UserDAO userDAO;@Overridepublic void show() {System.out.println(userDAO);}
    }
    
  • @Resource
  • package com.example.Service.Impl;import com.example.DAO.UserDAO;
    import com.example.Service.UserService;
    import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service("userService")
    public class UserServiceImpl implements UserService {@Resource(name = "userDAO2")private UserDAO userDAO;@Overridepublic void show() {System.out.println(userDAO);}
    }
    
     

http://www.ppmy.cn/news/1131632.html

相关文章

wvp-GB28181-pro windows系统编译安装的坑:录像功能不能正常使用

说明 wvp-GB28181-pro 只是包含了实时视频的接入功能&#xff1b; GitHub - 648540858/wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台&#xff0c;支持NAT穿透&#xff0c;支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联…

ROS2 中的轻量级、自动化、受控回放

一、说明 这篇文章描述了一种在 ROS2 中实现受控重播器的轻量级方法。用以测试中将现象重新播放一遍&#xff0c;以实现调参或故障定位的目的。所有源代码都可以在这里找到。该帖子也可在此处获得。 二、问题&#xff1a;不同步重播 任何曾经认真开发过 ROS2 的人都会知道这个问…

Kafka:安装与简单使用

文章目录 下载安装windows安装目录结构启动服务器创建主题发送一些消息启动消费者设置多代理集群常见问题 工具kafka tool 常用指令topic查看topic删除topic 常见问题参考文献 下载安装 下载地址&#xff1a;kafka-download windows安装 下载完后&#xff0c;找一个目录解压…

Arcgis克里金插值报错:ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。

Arcgis克里金插值报错&#xff1a;ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。 问题描述&#xff1a; 原因&#xff1a; shape文件的问题&#xff0c;此图可以看出&#xff0c;待插值的点有好几个都超出了地理范围之外&#xff0c;这个不知道是坐标系配准的问…

网络-Ajax

文章目录 前言一、Ajax优点&#xff1a;缺点&#xff1a; 二、使用步骤XNLHttpRequest对象完整代码 总结 前言 本文主要记录Ajax技术的简介&#xff0c;以及用法。 一、Ajax Ajax是一组用于在Web浏览器和Web服务器之间进行异步通信的Web开发技术。 它代表着Asynchronous Java…

2023.09.30使用golang1.18编译Hel10-Web/Databasetools的windows版

#Go 1.21新增的 log/slog 完美解决了以上问题&#xff0c;并且带来了很多其他很实用的特性。 本次编译不使用log/slog 包 su - echo $GOPATH ;echo $GOROOT; cd /tmp; busybox wget --no-check-certificate https://go.dev/dl/go1.18.linux-amd64.tar.gz;\ which tar&&am…

BUUCTF reverse wp 51 - 55

findKey shift f12 找到一个flag{}字符串, 定位到关键函数, F5无效, 大概率是有花指令, 读一下汇编 这里连续push两个byte_428C54很奇怪, nop掉下面那个, 再往上找到函数入口, p设置函数入口, 再F5 LRESULT __stdcall sub_401640(HWND hWndParent, UINT Msg, WPARAM wPara…

pytorch:debug dataLoader for循环的时候,很卡顿,进不去transform里面断点

推荐解决方案&#xff1a; 前一进程还未处理完&#xff0c;又进入下一个导致互锁&#xff0c;在一个Epoch完了后&#xff0c;或者每次获取一个batch数据后停顿一下&#xff1a; time.sleep(0.003)内存问题&#xff0c;使用开关&#xff1a;pin_memoryTrue/False多进程导致互锁…