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就会自动完成按名称自动匹配。就不需要我们在配置文件中指定注入关系。
分享到:
相关推荐
然而,自动装配简化了这个过程,Spring容器会尝试根据类型或名称自动找到合适的依赖并注入到bean中。 在Spring 4中,自动装配主要有以下几种方式: 1. **无注解自动装配(No Annotation Auto-Wiring)**:在XML...
在压缩包文件名称“spring_0700_IOC_Autowire”中,“IOC”代表“Inversion of Control”,即控制反转,它是Spring的核心概念之一,自动装配是IOC的一种实现方式。这个文件可能包含了关于Spring自动装配的教程材料,...
如果找不到匹配的名称,但找到了类型匹配的Bean,Spring会默认使用类型匹配进行自动装配。 ### 三、`@Qualifier`辅助注解 当一个类型有多个实例时,`@Autowired`可能会出现歧义,这时可以结合`@Qualifier`注解来...
例如,在使用byName自动装配方式时,Spring框架会根据Bean对象的名称来查找对应的Bean对象,并将其关联起来。 在Java代码中,使用Java注解机制可以实现自动装配功能。例如,使用@AttachAnnotation注解来标记某个...
byType自动装配则是根据bean的类型来匹配依赖。同样以`MyService`为例,如果它有一个`DataSource`类型的`dataSource`属性,而容器中有多个`DataSource`实现,Spring会报错,因为无法确定应该注入哪个`DataSource`。...
通过自动装配,Spring容器能够根据bean的类型或者名称自动查找并注入相应的依赖,从而减少XML配置文件的繁琐工作。 一、自动装配类型 1. **byName**:基于bean的名称进行自动装配。当Spring容器在bean的属性上发现@...
在Spring框架中,自动装配(Auto-Wiring)是一种简化配置的方式,它允许Spring容器自动为Bean提供依赖。这种特性使得开发者无需显式地在XML配置文件中声明Bean之间的依赖关系,从而减少了配置工作量,提高了代码的可...
在Spring框架中,自动装配(Autowiring)是一种机制,它允许Spring容器自动为bean提供其依赖,而无需显式配置。自动装配极大地简化了应用的配置,使得开发者可以更专注于业务逻辑。本文将深入探讨Spring自动装配的...
在Spring框架中,`Autowired`是自动装配bean的重要机制,它极大地简化了依赖注入的过程。本篇文章将深入探讨XML版本、注解版本的`Autowired`以及相关源码解析。 首先,我们来理解`Autowired`的基本概念。在Spring...
当设置自动装配模式为`byName`时,Spring容器会尝试根据Bean的属性名称来查找具有相同ID或name的其他Bean,并将其作为依赖注入到当前Bean中。这种方式适用于属性名称和依赖Bean的ID或name一致的情况。 **优点**: -...
在Spring框架中,类型(Type)自动装配是一种自动配置机制,它允许我们通过类型匹配来注入依赖。这种机制简化了代码,减少了手动设置bean依赖的工作量。本文将深入解析Spring如何实现类型自动装配的源码。 首先,让...
自动装配可以根据 Bean 的名称、类型或构造器入参来自动装配依赖关系。在 Spring 中,自动装配是通过 AutowireCapableBeanFactory 接口来实现的,该接口定义了四种自动装配策略:byName、byType、constructor 和 ...
标题中的“第五章 Spring4 自动装配、方法注入”指的是Spring框架中两个核心特性:自动装配(Autowired)和方法注入。这两个概念在Spring框架中占据了重要地位,它们极大地简化了依赖管理,使得开发者能够更加专注于...
标题中的“第四章示例代码__自动装配”可能指的是一个教学资源或教程的一部分,它包含了一些实际的代码示例,用于解释和演示如何在Spring框架中实现自动装配。通常,这样的示例会包括配置文件(如XML或Java配置类)...
byName 自动装配是指通过设置 property 标签的 autowire 属性为 byName,Spring 将自动寻找一个与该属性名称相同或 id 相同的 Bean,注入进来。例如: ```xml ``` 在上面的例子中,dataSource 属性将...
在Spring Boot中,自动装配是其核心特性之一,它极大地简化了配置,使得开发者能够快速构建应用程序。本文将深入解析Spring Boot自动装配的原理,并探讨starter技术。 首先,我们来看`@Import`注解,它是Spring框架...
在Spring框架中,`@Autowired`注解是用于自动装配bean的一种方式,它可以根据类型匹配找到合适的bean进行注入。然而,当存在多个相同类型的bean时,Spring可能无法确定应该注入哪一个。这时,`@Qualifier`注解就派上...
`byName`自动装配是根据Bean的id和当前Bean的setter方法名称进行匹配;而`byType`则是基于Bean的类型与当前Bean的属性类型进行匹配。例如: ```xml ``` 这里的`autowire="byName"`指示Spring尝试找到一个名为`name...