当前位置: 首页 > news >正文

Spring IOC 自动装配(注入)

注解⽅式注⼊ Bean

对于 bean 的注⼊,除了使⽤ xml 配置以外,可以使⽤注解配置。注解的配置,可以简化配置⽂件, 提⾼开发的速度,使程序看上去更简洁。对于注解的解释,Spring对于注解有专⻔的解释器,对定义的 注解进⾏解析,实现对应bean对象的注⼊。通过反射技术实现

一、准备环境

1.修改配置文件
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns:context = "http://www.springframework.org/schema/context"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" >
2.开启自动化注入

<!--开启⾃动化装配(注⼊)-->

<context:annotation-config/>

<bean id="userDao" class="com.xxxx.dao.UserDao"></bean>

<bean id="userService" class="com.xxxx.service.UserService"></bean>

3. 给注⼊的bean对象添加注解

二、@Resource注解

@Resource注解实现⾃动注⼊(反射):

默认根据属性字段名称查找对应的 bean 对象 (属性字段的名称与bean标签的id属性值相等)

如果属性字段名称未找到,则会通过类型(Class类型)查找

属性可以提供set⽅法,也可以不提供set⽅法

注解可以声明在属性级别 或 set⽅法级别

可以设置name属性,name属性值必须与bean标签的id属性值⼀致;如果设置了name属性值,就只

会按照name属性值查找bean对象

当注⼊接⼝时,如果接⼝只有⼀个实现则正常实例化;如果接⼝存在多个实现,则需要使⽤name

属性指定需要被实例化的bean对象

三、@Autowired注解

@Autowired注解实现⾃动化注⼊:

默认通过类型(Class类型)查找bean对象 与属性字段的名称⽆关

属性可以提供set⽅法,也可以不提供set⽅法

注解可以声明在属性级别 或 set⽅法级别

可以添加@Qualifier结合使⽤,通过value属性值查找bean对象(value属性值必须要设置,且值要与 bean标签的id属性值对应)

http://www.lryc.cn/news/473135.html

相关文章:

  • Go使用SIMD指令——以string转为整数为例
  • 分享资源合集
  • C#/WinForm 鼠标穿透自定义区域截图(后续实现录屏)
  • 基于SpringBoot的“社区维修平台”的设计与实现(源码+数据库+文档+PPT)
  • 图书管理系统汇报
  • 【发版通知】FormMaking 表单设计器新版发布,赋能企业实现低代码开发!
  • 计算机科学与技术-毕业设计选题推荐
  • 《C++音频频谱分析:开启声音世界的神秘之门》
  • GitHub 上传项目保姆级教程
  • 联想笔记本电脑睡眠后打开黑屏解决方法
  • 计算机网络:网络层 —— 路由选择与静态路由配置
  • [LeetCode-55]基于贪心算法的跳跃游戏的求解(C语言版)
  • C# 将批量图片转为PDF文件
  • 大模型面试题63题(1-11)
  • 【Flask】二、Flask 路由机制
  • Java项目实战II基于Spring Boot的交通管理在线服务系统设计与实现(开发文档+数据库+源码)
  • 【PythonWeb开发】Flask-RESTful视图类基础知识
  • Kubernetes——part10-2 kubernetes 日志收集方案 EFK
  • mockito+junit完成单元测试
  • 基于web的便捷饭店点餐小程序的设计与实现(lw+演示+源码+运行)
  • CUDA环境安装终极指南——Linux(其它系统也一样)
  • 安卓开发之登录页面(跳转版)
  • solidworks学习6吊环-20241030
  • 数据结构和算法-动态规划(3)-经典问题
  • Java算法-一维前缀和与差分
  • Elasticsearch 安装教程:驾驭数据海洋的星际导航仪
  • 【解决方案】微信小程序如何使用 ProtoBuf 进行 WebSocket 通信
  • 独立游戏开发者面临的挑战与困境
  • KVM 虚拟机Anolis OS 8.9 下利用宝塔面板中的 Docker 配置 Nextcloud + onlyoffice
  • 串口扫盲TTL,TX/TR/GND