`
tianhei
  • 浏览: 211634 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring 根据名称自动装配

阅读更多

Bean1.java

package com.cos.bean110321;

public class Bean1 {

    String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

 

 

Test.java

package com.cos.bean110321;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
    private Bean1 bean1;

    public Bean1 getBean1() {
        return bean1;
    }
    public void setBean1(Bean1 bean1) {
        this.bean1 = bean1;
    }
    public static void main(String[] args) {
        BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext_7.xml");//根据配置文件获得bean工厂
        Test test = (Test) factory.getBean("test");//取得test这个bean,转化成Test对象
        test.getBean1().setName("good");//给Bean1的name设置值:good
        System.out.println(""+test.getBean1().getName());//取得Bean1的name属性的值,结果输出:good
    }
}

  

 

applicationContext_7.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd" default-autowire="byName">

    <bean name="test" class="com.cos.bean110321.Test"/>
    <bean name="bean1" class="com.cos.bean110321.Bean1"/>
</beans>

 

从这个配置文件中可以发现,test和bean1这两个bean根本没有做关联配置,但是在Test.java中可以正确的给Bean1的name赋值,并且可以取出其中的值。

原因就是在配置文件的<beans>标签中配置了一个属性: default-autowire="byName"

这样只要配置文件中bean的名字:bean1和Test.java中属性的名字Bean1可以匹配上。spring就会自动完成按名称自动匹配。就不需要我们在配置文件中指定注入关系。

 

 

 

0
1
分享到:
评论

相关推荐

    Spring实现自动装配

    然而,自动装配简化了这个过程,Spring容器会尝试根据类型或名称自动找到合适的依赖并注入到bean中。 在Spring 4中,自动装配主要有以下几种方式: 1. **无注解自动装配(No Annotation Auto-Wiring)**:在XML...

    spring自动装配

    在压缩包文件名称“spring_0700_IOC_Autowire”中,“IOC”代表“Inversion of Control”,即控制反转,它是Spring的核心概念之一,自动装配是IOC的一种实现方式。这个文件可能包含了关于Spring自动装配的教程材料,...

    4Spring自动装配——annotation resource方式

    如果找不到匹配的名称,但找到了类型匹配的Bean,Spring会默认使用类型匹配进行自动装配。 ### 三、`@Qualifier`辅助注解 当一个类型有多个实例时,`@Autowired`可能会出现歧义,这时可以结合`@Qualifier`注解来...

    Java注解机制之Spring自动装配实现原理详解

    例如,在使用byName自动装配方式时,Spring框架会根据Bean对象的名称来查找对应的Bean对象,并将其关联起来。 在Java代码中,使用Java注解机制可以实现自动装配功能。例如,使用@AttachAnnotation注解来标记某个...

    spring中的自动装配实例byName、byType

    byType自动装配则是根据bean的类型来匹配依赖。同样以`MyService`为例,如果它有一个`DataSource`类型的`dataSource`属性,而容器中有多个`DataSource`实现,Spring会报错,因为无法确定应该注入哪个`DataSource`。...

    spring学习之四“自动装配”

    通过自动装配,Spring容器能够根据bean的类型或者名称自动查找并注入相应的依赖,从而减少XML配置文件的繁琐工作。 一、自动装配类型 1. **byName**:基于bean的名称进行自动装配。当Spring容器在bean的属性上发现@...

    Spring的自动装配源代码

    在Spring框架中,自动装配(Auto-Wiring)是一种简化配置的方式,它允许Spring容器自动为Bean提供依赖。这种特性使得开发者无需显式地在XML配置文件中声明Bean之间的依赖关系,从而减少了配置工作量,提高了代码的可...

    Spring 自动装配及其注解

    在Spring框架中,自动装配(Autowiring)是一种机制,它允许Spring容器自动为bean提供其依赖,而无需显式配置。自动装配极大地简化了应用的配置,使得开发者可以更专注于业务逻辑。本文将深入探讨Spring自动装配的...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    在Spring框架中,`Autowired`是自动装配bean的重要机制,它极大地简化了依赖注入的过程。本篇文章将深入探讨XML版本、注解版本的`Autowired`以及相关源码解析。 首先,我们来理解`Autowired`的基本概念。在Spring...

    Spring自动装配模式表

    当设置自动装配模式为`byName`时,Spring容器会尝试根据Bean的属性名称来查找具有相同ID或name的其他Bean,并将其作为依赖注入到当前Bean中。这种方式适用于属性名称和依赖Bean的ID或name一致的情况。 **优点**: -...

    Spring由类型(Type)自动装配源码

    在Spring框架中,类型(Type)自动装配是一种自动配置机制,它允许我们通过类型匹配来注入依赖。这种机制简化了代码,减少了手动设置bean依赖的工作量。本文将深入解析Spring如何实现类型自动装配的源码。 首先,让...

    彻底搞明白Spring中的自动装配和Autowired注解的使用

    自动装配可以根据 Bean 的名称、类型或构造器入参来自动装配依赖关系。在 Spring 中,自动装配是通过 AutowireCapableBeanFactory 接口来实现的,该接口定义了四种自动装配策略:byName、byType、constructor 和 ...

    第五章 Spring4 自动装配、方法注入

    标题中的“第五章 Spring4 自动装配、方法注入”指的是Spring框架中两个核心特性:自动装配(Autowired)和方法注入。这两个概念在Spring框架中占据了重要地位,它们极大地简化了依赖管理,使得开发者能够更加专注于...

    第四章示例代码__自动装配

    标题中的“第四章示例代码__自动装配”可能指的是一个教学资源或教程的一部分,它包含了一些实际的代码示例,用于解释和演示如何在Spring框架中实现自动装配。通常,这样的示例会包括配置文件(如XML或Java配置类)...

    Spring中自动装配的4种方式

    byName 自动装配是指通过设置 property 标签的 autowire 属性为 byName,Spring 将自动寻找一个与该属性名称相同或 id 相同的 Bean,注入进来。例如: ```xml ``` 在上面的例子中,dataSource 属性将...

    springBoot自动装配原理以及starter技术.pdf

    在Spring Boot中,自动装配是其核心特性之一,它极大地简化了配置,使得开发者能够快速构建应用程序。本文将深入解析Spring Boot自动装配的原理,并探讨starter技术。 首先,我们来看`@Import`注解,它是Spring框架...

    Spring自动装配@Qualifier实例

    在Spring框架中,`@Autowired`注解是用于自动装配bean的一种方式,它可以根据类型匹配找到合适的bean进行注入。然而,当存在多个相同类型的bean时,Spring可能无法确定应该注入哪一个。这时,`@Qualifier`注解就派上...

    spring入门教程之bean的继承与自动装配详解

    `byName`自动装配是根据Bean的id和当前Bean的setter方法名称进行匹配;而`byType`则是基于Bean的类型与当前Bean的属性类型进行匹配。例如: ```xml ``` 这里的`autowire="byName"`指示Spring尝试找到一个名为`name...

Global site tag (gtag.js) - Google Analytics