Spring IoC自动装载autowire

自动装载是Spring提供的一种更加简便的方式来完成DI(依赖注入),不需要手动配置property,IoC容器会自动选择bean完成注入。
⭐自动装载有两种方式:

  • byName,通过属性名完成自动装载
  • byType,通过属性对应的数据类型完成自动装载
    ⭐byName的方式
  1. 创建Person实体类
package com.oyrf.entity;import lombok.Data;@Data
public class Person {private Integer Id;private String name;private Car car;
}
  1. 在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相关推荐

  1. python autowire库讲解_案例学编程系列:案例认识 Spring IOC

    Spring 能帮我们做什么①.Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系. ②.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制. ③.Spring ...

  2. spring ioc原理_这70 道Spring高频面试题,你不好奇吗?

    对于面试来说,Spring是必问知识.如何了解和掌握核心内容呢? 这里总结打磨了 70 道 Spring 相关面试题,有的很基础,有的很细节,大家可以评估一下自己掌握的情况. Spring 重点要掌握 ...

  3. spring ioc原理_干了5年的Java面试官,把他喜欢问的几十个Spring面试题告诉我了

    前言: Spring 框架知识是互联网公司面试必考知识点.对于开发同学来说,Spring 框架熟悉又陌生. 熟悉:开发过程中无时无刻不在使用 Spring 的知识点:陌生:对于基本理论知识疏于整理与记 ...

  4. JavaEE之Spring框架(Spring IOC)的使用

    六.Spring框架 6.1 Spring框架的概念 Spring 是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是 IOC(控制反转/依赖注入)与 AOP( ...

  5. Spring核心技术(八)——Spring自动装载的注解

    本文针对自动装载的一些注解进行描述. 基于注解的容器配置 @Required注解 @Required注解需要应用到Bean的属性的setter方法上面,如下面的例子: public class Sim ...

  6. java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...

    详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...

  7. Spring自动装配(autowire)篇

    什么是自动装配 自动装配帮我们省去了 property标签配置操作,Spring会自动根据 属性名称,类型,构造器来进行自动注入. 例如不进行自动装配配置如下: <bean id="u ...

  8. Spring IOC:bean的生命周期与@Autowire(1)

    全系列文章: <Spring IOC:bean的生命周期与@Autowire(1)> <Spring IOC:bean的生命周期与@Autowire(2)> <Sprin ...

  9. Spring自动装配-autowire

    目录 1.自动装配-autowire 2.autowire的四种模式 3.使用自动装配 3.1 使用byName自动装配 3.2 使用byType自动装配 资源类和配置文件 1.自动装配-autowi ...

最新文章

  1. Python Qt GUI设计:QDrag拖拽数据传输类(基础篇—18)
  2. 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
  3. OpenAI解散机器人团队,曾试图造AGI机器人,创始人:最好的决定
  4. python下载教程pdf-Python教程PDF合集下载
  5. 热血致敬!曾影响几代科学巨匠的传奇经典,至今仍无人能超越!
  6. 将Capicom调用代码封装到ActiveX——解决javascript调Capicom读取数字证书信息时,IE弹出安全提示的问题...
  7. Atitit java js groupby 分组操作法
  8. MT管理器破解COC辅助
  9. CDH踩坑记录之:熵不足
  10. re学习笔记(65)BUUCTF - re - [GKCTF2020]Chellys identity
  11. 数据库(Mysql)的事物详解
  12. lcd显示器测试软件,tLCDtest(液晶屏幕测试软件)
  13. 微信公众平台开发教程
  14. 搭建个人网盘-owncloud
  15. 千万级用户ms级抽奖N名设计方案
  16. UML统一建模语言第7章 状态机图和活动图课后习题
  17. Deep Learning Chapter01:机器学习中线性代数
  18. Domain or host
  19. win系统修改C盘下user/用户名
  20. python实现烤羊肉串(类)

热门文章

  1. CAS Server 5.3 demo搭建
  2. 处理加权排序类型问题的一般套路
  3. “死锁”四个必要条件的合理解释
  4. 报名考试:Google Certified Professional (GCP) Cloud Architect |Google认证专家(GCP)云架构师
  5. 2.2计算圆柱体的体积.py
  6. Windows - RAID 1 阵列搭建
  7. raid1重建时间_控制RAID重建时间的最佳方式
  8. GWA2 in Python吉娃兔发布Python语言初始版本
  9. Javac编译器的工作过程
  10. python colorbar刻度_python – matplotlib的colorbar中的小刻度