博客
关于我
spring的自动装配
阅读量:188 次
发布时间:2019-02-28

本文共 1798 字,大约阅读时间需要 5 分钟。

Spring自动装配详解

Spring框架提供了多种自动装配机制,帮助开发者简化依赖注入的配置。了解这些机制有助于更好地利用Spring的强大功能。

自动装配类型

Spring的自动装配机制主要有以下几种类型,开发者可以根据需求选择合适的方式:

  • byName:通过属性名寻找需要注入的对象。Spring会寻找与属性名相同的bean,如果找不到,则装不上。
  • byType:通过属性类型寻找需要注入的对象。Spring会寻找与属性类型匹配的bean,如果找不到或找到多个,会抛异常。
  • constructor:通过构造函数参数类型寻找需要注入的对象。Spring会寻找与构造函数参数类型匹配的一个或多个bean,如果找不到或找到多个,会抛异常。
  • autodetect:结合byType和constructor的优点,自动检测最佳匹配的bean。
  • default:指定默认的自动装配方式,需要在
    标签中配置。
  • no:不进行自动装配,是autowire默认值。
  • byName原理图

    理解byName原理图有助于更直观地掌握自动装配的工作流程。以下是简单的步骤说明:

    • Spring容器初始化时,解析XML配置文件。
    • 遍历所有bean标签。
    • 查找与属性名匹配的bean。
    • 如果找到且符合条件,则注入目标对象。

    实际案例

    Dog类

    package com.hsp.autowire;public class Dog {    private String name;    private int age;    public String getName() { return name; }    public void setName(String name) { this.name = name; }    public int getAge() { return age; }    public void setAge(int age) { this.age = age; }}

    Master类

    package com.hsp.autowire;public class Master {    private String name;    private Dog dog;    public String getName() { return name; }    public void setName(String name) { this.name = name; }    public Dog getDog() { return dog; }    public void setDog(Dog dog) { this.dog = dog; }}

    beans.xml配置

    顺平

    App1测试类

    package com.hsp.autowire;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App1 {    public static void main(String[] args) {        ApplicationContext ac = new ClassPathXmlApplicationContext("com/hsp/autowire/beans.xml");        Master master = (Master) ac.getBean("master");        System.out.println(master.getName() + " 养 " + master.getDog().getName());    }}

    测试结果

    运行App1类,输出结果如下:

    顺平 养 小黄

    总结

    通过以上配置和测试,可以清晰地看到Spring自动装配的实际效果。理解这些机制有助于更高效地进行依赖注入,提升项目开发效率。

    转载地址:http://ifej.baihongyu.com/

    你可能感兴趣的文章
    OSI七层模型与TCP/IP四层与五层模型详解
    查看>>
    OSI七层模型的TCP/IP模型都有哪几层和他们的对应关系?
    查看>>
    OSM数据如何下载使用(地图数据篇.11)
    查看>>
    OSPF 四种设备角色:IR、ABR、BR、ASBR
    查看>>
    OSPF 学习
    查看>>
    OSPF 概念型问题
    查看>>
    SQL Server 存储过程分页。
    查看>>
    OSPF不能发现其他区域路由时,该怎么办?
    查看>>
    OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
    查看>>
    SQL Server 存储过程
    查看>>
    OSPF在大型网络中的应用:高效路由与可扩展性
    查看>>
    OSPF太难了,这份OSPF综合实验请每位网络工程师查收,周末弯道超车!
    查看>>
    OSPF技术入门(第三十四课)
    查看>>
    OSPF技术连载10:OSPF 缺省路由
    查看>>
    OSPF技术连载11:OSPF 8种 LSA 类型,6000字总结!
    查看>>
    OSPF技术连载13:OSPF Hello 间隔和 Dead 间隔
    查看>>
    OSPF技术连载14:OSPF路由器唯一标识符——Router ID
    查看>>
    OSPF技术连载15:OSPF 数据包的类型、格式和邻居发现的过程
    查看>>
    OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
    查看>>
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>