Spring IoC自动装载autowire
Spring IoC自动装载autowire
自动装载是Spring提供的一种更加简便的方式来完成DI(依赖注入),不需要手动配置property,IoC容器会自动选择bean完成注入。
⭐自动装载有两种方式:
- byName,通过属性名完成自动装载
- byType,通过属性对应的数据类型完成自动装载
⭐byName的方式
- 创建Person实体类
package com.oyrf.entity;import lombok.Data;@Data
public class Person {private Integer Id;private String name;private Car car;
}
- 在spring.xml中配置Car和Person对应的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"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"xmlns:p="http://www.springframework.org/schema/p"><bean id="person" class="com.oyrf.entity.Person" autowire="byName"><property name="id" value="1"></property><property name="name" value="张三"></property></bean><bean id="car" class="com.oyrf.entity.Car"><constructor-arg name="num" value="1"></constructor-arg><constructor-arg name="brand" value="宝马"></constructor-arg></bean></beans>
⭐byType的方式(把id改成car2,不是根据名字去取了,而是根据类型)
<?xml version="1.0" encoding="UTF-8"?>
<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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"xmlns:p="http://www.springframework.org/schema/p"><bean id="person" class="com.oyrf.entity.Person" autowire="byType"><property name="id" value="1"></property><property name="name" value="张三"></property></bean><bean id="car2" class="com.oyrf.entity.Car"><constructor-arg name="num" value="1"></constructor-arg><constructor-arg name="brand" value="宝马"></constructor-arg></bean></beans>
⭐注意:
使用byType进行自动装载时,必须保证IoC中只有一个符合条件的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"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"xmlns:p="http://www.springframework.org/schema/p"><bean id="person" class="com.oyrf.entity.Person" autowire="byType"><property name="id" value="1"></property><property name="name" value="张三"></property></bean><bean id="car" class="com.oyrf.entity.Car"><constructor-arg name="num" value="1"></constructor-arg><constructor-arg name="brand" value="宝马"></constructor-arg></bean><bean id="car2" class="com.oyrf.entity.Car"><constructor-arg name="num" value="2"></constructor-arg><constructor-arg name="brand" value="奔驰"></constructor-arg></bean></beans>
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.oyrf.entity.Car' available: expected single matching bean but found 2: car,car2
Spring IoC自动装载autowire相关推荐
- python autowire库讲解_案例学编程系列:案例认识 Spring IOC
Spring 能帮我们做什么①.Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系. ②.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制. ③.Spring ...
- spring ioc原理_这70 道Spring高频面试题,你不好奇吗?
对于面试来说,Spring是必问知识.如何了解和掌握核心内容呢? 这里总结打磨了 70 道 Spring 相关面试题,有的很基础,有的很细节,大家可以评估一下自己掌握的情况. Spring 重点要掌握 ...
- spring ioc原理_干了5年的Java面试官,把他喜欢问的几十个Spring面试题告诉我了
前言: Spring 框架知识是互联网公司面试必考知识点.对于开发同学来说,Spring 框架熟悉又陌生. 熟悉:开发过程中无时无刻不在使用 Spring 的知识点:陌生:对于基本理论知识疏于整理与记 ...
- JavaEE之Spring框架(Spring IOC)的使用
六.Spring框架 6.1 Spring框架的概念 Spring 是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是 IOC(控制反转/依赖注入)与 AOP( ...
- Spring核心技术(八)——Spring自动装载的注解
本文针对自动装载的一些注解进行描述. 基于注解的容器配置 @Required注解 @Required注解需要应用到Bean的属性的setter方法上面,如下面的例子: public class Sim ...
- java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...
详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...
- Spring自动装配(autowire)篇
什么是自动装配 自动装配帮我们省去了 property标签配置操作,Spring会自动根据 属性名称,类型,构造器来进行自动注入. 例如不进行自动装配配置如下: <bean id="u ...
- Spring IOC:bean的生命周期与@Autowire(1)
全系列文章: <Spring IOC:bean的生命周期与@Autowire(1)> <Spring IOC:bean的生命周期与@Autowire(2)> <Sprin ...
- Spring自动装配-autowire
目录 1.自动装配-autowire 2.autowire的四种模式 3.使用自动装配 3.1 使用byName自动装配 3.2 使用byType自动装配 资源类和配置文件 1.自动装配-autowi ...
最新文章
- Python Qt GUI设计:QDrag拖拽数据传输类(基础篇—18)
- 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
- OpenAI解散机器人团队,曾试图造AGI机器人,创始人:最好的决定
- python下载教程pdf-Python教程PDF合集下载
- 热血致敬!曾影响几代科学巨匠的传奇经典,至今仍无人能超越!
- 将Capicom调用代码封装到ActiveX——解决javascript调Capicom读取数字证书信息时,IE弹出安全提示的问题...
- Atitit java js groupby 分组操作法
- MT管理器破解COC辅助
- CDH踩坑记录之:熵不足
- re学习笔记(65)BUUCTF - re - [GKCTF2020]Chellys identity
- 数据库(Mysql)的事物详解
- lcd显示器测试软件,tLCDtest(液晶屏幕测试软件)
- 微信公众平台开发教程
- 搭建个人网盘-owncloud
- 千万级用户ms级抽奖N名设计方案
- UML统一建模语言第7章 状态机图和活动图课后习题
- Deep Learning Chapter01:机器学习中线性代数
- Domain or host
- win系统修改C盘下user/用户名
- python实现烤羊肉串(类)
热门文章
- CAS Server 5.3 demo搭建
- 处理加权排序类型问题的一般套路
- “死锁”四个必要条件的合理解释
- 报名考试:Google Certified Professional (GCP) Cloud Architect |Google认证专家(GCP)云架构师
- 2.2计算圆柱体的体积.py
- Windows - RAID 1 阵列搭建
- raid1重建时间_控制RAID重建时间的最佳方式
- GWA2 in Python吉娃兔发布Python语言初始版本
- Javac编译器的工作过程
- python colorbar刻度_python – matplotlib的colorbar中的小刻度