博客
关于我
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/

    你可能感兴趣的文章
    Node服务在断开SSH后停止运行解决方案(创建守护进程)
    查看>>
    node模块化
    查看>>
    node模块的本质
    查看>>
    node环境下使用import引入外部文件出错
    查看>>
    node环境:Error listen EADDRINUSE :::3000
    查看>>
    Node的Web应用框架Express的简介与搭建HelloWorld
    查看>>
    Node第一天
    查看>>
    node编译程序内存溢出
    查看>>
    Node读取并输出txt文件内容
    查看>>
    node防xss攻击插件
    查看>>
    noi 1996 登山
    查看>>
    noi 7827 质数的和与积
    查看>>
    NOI-1.3-11-计算浮点数相除的余数
    查看>>
    NOI2010 海拔(平面图最大流)
    查看>>
    NOIp2005 过河
    查看>>
    NOIP2011T1 数字反转
    查看>>
    NOIP2014 提高组 Day2——寻找道路
    查看>>
    noip借教室 题解
    查看>>
    NOIP模拟测试19
    查看>>
    NOIp模拟赛二十九
    查看>>