4.5---Spring框架之Spring的自动装配(复习版本)
使用autowire来配置自动装载模式,对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象。
1.在Spring框架xml配置中共有5种自动装配:
1.no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。
2.byName:通过bean的名称进行自动装配,如果一个bean的 property (性质)与另一bean 的name 相同,就进行自动装配。
3.byType:通过参数的数据类型进行自动装配。
4.constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。
5.autodetect:自动探测,如果有构造方法,通过 construct的方式自动装配,否则使用 byType的方式自动装配。
2.基于注解的自动装配方式:
使用@Autowired、@Resource注解来自动装配指定的bean;
在使用@Autowired注解之前需要在Spring配置文件进行配置。
在启动springIoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。
在使用@Autowired时,首先在容器中查询对应类型的bean:
如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据;
如果查询的结果不止一个,那么@Autowired会根据名称来查找;
如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。
@Autowired的注入规则:
1、@Autowired默认情况下按照类型在spring容器中查找对应的组件 :context.getBean(XXX.class);
@Autowired
private UserService userService;
此时,如果容器中只有一个userservice的bean,那么就会根据UserService.class进行注入
2.如果容器中存在多个userservice的bean对象,那么就会根据属性的名称作为组件的id在容器中查找context.getBean(“xxx”);
@Autowired
private UserService userService2;
此时就会根据userservice2进行查找bean
@Autowired可用于:构造函数、成员变量、Setter方法
注:@Autowired和@Resource之间的区别:
(1) @Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为false)。
(2) @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。
4.5---Spring框架之Spring的自动装配(复习版本)相关推荐
- java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...
详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...
- 深入浅出,Spring 框架和 Spring Boot 的故事
Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一.它目前由大量提供一系列服务的模块组成.包括模块容器,为构建横切关注点提供支持的面向切面编程(AOP),安全框架,数据存 ...
- Spring 框架(Spring Framework)使用详解
概述 Spring 体系概述 Spring 是于2003年兴起的一个 full-stack 轻量级的 Java 开源框架,由 Rod Johnson 创建,使用 Spring 可以更快.更轻松.更安全 ...
- spring框架教程 Spring开发实例 spring mvc视频教程下载
基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...
- 什么是spring框架?spring框架到底有什么用?spring框架到底做了些什么?
什么是spring框架,spring框架究竟有什么用呢?我们可以用spring框架来做些什么呢?这是我今天要说的内容. 当然,百度spring框架会出现一大堆spring框架的介绍,以及IOC和AOP ...
- 什么是spring框架?spring框架的好处?
spring框架是一个轻量级的DI/IOC和AOP容器的开源框架. 通俗来讲,spring好比一个罐子,罐子里可以装很多东西进去.在spring里面每个对象就是个bean(豆子),把豆子放到罐子里面, ...
- J2EE高级开发框架小课程之Spring框架1——Spring创建三种方式:使用无参构造器创建对象(bean标签的方式),使用静态方法创建对象,使用实例方法创建对象(非静态方法)
Spring是什么? 是一个开源的.用于简化企业级应用开发的应用开发框架. a.简化开发: Spring框架对很多常用的api做了简化,比如,使用Spring jdbc (Spring jdbc是Sp ...
- JavaEE之Spring框架(Spring IOC)的使用
六.Spring框架 6.1 Spring框架的概念 Spring 是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是 IOC(控制反转/依赖注入)与 AOP( ...
- 【Spring框架】Spring中的DI介绍
Spring中的DI介绍 DI(Dependency Injection),即"依赖注入",组件之间依赖关系由容器在运行期决定,即容器动态的将某个依赖关系注入到组件当中.它是是 S ...
最新文章
- SharePoint使用BCS开发你第一个应用程序(三)
- 分治法求数组中的最大最小元素
- 解决安装python第三方模块 '-mno-cygwin'报错的问题
- getPerspectiveTransform函数
- Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
- C语言中前面有四个空格,在C语言编程中什么叫前导空格,什么叫尾随空 – 手机爱问...
- 【神经网络与深度学习摘要】第1章 绪论
- 爬了7000+条内衣信息,只为探究妹纸们的偏好!
- 558. 四叉树交集
- aliddns ipv6_AliDDNS v2.0.0.1 - 阿里云DNS动态解析Windows客户端 支持IPv6 微信推送
- 技术篇(二)Demo示例——Bundle打包和加载
- QuickFlow-如何通过QFD and ExecuteCode获取其他列表数据
- Win11-GTX3060-配置Pytorch GPU
- NVIDIA显卡驱动
- ACCDB与MDB的读取区别
- 【Linux kernel】自旋锁和互斥锁
- 13个人中找出叛徒的问题(耶稣问题)经典做法
- 重庆邮电大学计算机专硕考研计网803历年真题简答题整理
- OpenSSL心脏滴血检测
- 宗海图cad_基于多软件的ArcGIS宗海图制图技术研究_李胜