Bean的自动装配----ByName
ByName模式:
根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为by name,而该bean包含master属性(同时提供setMaster(..)方法),Spring就会查找名为master的bean定义,并用它来装配给master属性。
案例:
EmpServiceImpl.java
public class EmpServiceImpl {
private AddressServiceImpl addressServiceImpl;
public AddressServiceImpl getAddressServiceImpl() {
return addressServiceImpl;
}
public void setAddressServiceImpl(AddressServiceImpl addressServiceImpl) {
this.addressServiceImpl = addressServiceImpl;
}
public void address(){
System.out.println("address方法由测试类中调用:"+addressServiceImpl.getAddress() );
}
}
AddressServiceImpl.java
public class AddressServiceImpl {
private String address;
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
System.out.println("显示xml中赋的address的值是" + address);
return address;
}
}
Xml中的bean
<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"
scope="singleton" autowire="byName" />
//一下bean的id的值需要同EmpServiceImpl类中封装的AddressServiceImpl类的对象的名称一样。ByName就是根据此名称进行查找的
<bean id="addressServiceImpl" class="cn.csdn.service.AddressServiceImpl"
scope="singleton">
<property name="address">
<value>北京中关村</value>
</property>
</bean>
byname
byType
在使用的过程中必须保证bean能够初始化即含有一个默认的构造器,否则的话会出现bug
如果有默认的无参数的构造器就不需要多余的配置
如果有带有参数的构造器,那在bean的配置中必须配置器初始化的参数 或者在bean中添加无参数的构造器
补充内容:依赖检查
Spring除了能对容器中bean的依赖设置进行检查外。还可以检查bean定义中实际属性值的设置,当然也包括采用自动装配方式设置属性值的检查。
模式
|
说明
|
none
|
没有依赖检查,如果bean的属性没有值的话可以不用设置。
|
simple
|
对于原始类型及集合(除协作者外的一切东西)执行依赖检查
|
object
|
仅对协作者执行依赖检查
|
all
|
对协作者,原始类型及集合执行依赖检查
|
dependency-check="objects":依赖对象检查 ,如果对象不存在(即找不到bean时)就会出现bug
dependency-check:
none:没有依赖检查
simple(除了协作者)原始数据、集合执行依赖检查
objects仅对协作者的依赖检查
all 所有
自动装配就是针对bean的,匹配过程中可以依赖检查,检查的值为objects指的是仅对协作者执行依赖检查
分享到:
相关推荐
(3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean class="xxx" ></bean> (4)constructor:与 byType 方式类似,不同之处是构造注入 <bean class="xxx" ></bean> 本例,演示 byName...
本节将详细介绍基于XML、注解(Annotation)以及自动装配这三种Bean装配方式。 首先,我们来理解什么是Bean的装配。Bean的装配,也称为依赖注入,是指将对象所需的依赖关系(例如其他对象或服务)设置到该对象中,...
解决IDEA中自动装配,找不到类型的bean问题
Spring通过组件扫描(Component Scanning)和自动装配(Autowiring)来实现这一目标,使得开发者无需手动配置大部分bean的依赖关系。 首先,我们来看组件扫描。组件扫描允许Spring容器自动发现应用上下文中创建的...
3. **基于名称的自动装配(By Name Auto-Wiring)**:Spring会查找与目标bean的属性名相同的bean并注入。在XML配置中,可以使用`autowire="byName"`开启此功能。 4. **基于注解的自动装配(Annotation-Based Auto-...
3. 配置自动装配 在Spring的XML配置文件中,可以通过`<beans>`标签的`autowire`属性来全局设置自动装配策略,或者在单个`<bean>`标签中通过`autowire`属性指定某一个bean的自动装配方式。 4. 使用注解进行自动装配 ...
2. **Spring的bean定义**:bean如何在配置中声明,以及它们如何通过自动装配与其他bean关联。 3. **@Autowired注解**:这是Spring提供的一个注解,用于标记需要自动装配的字段、构造函数、方法或参数。 4. **@...
本文将深入探讨Spring Bean的继承与自动装配。 首先,让我们了解Bean的基本定义。在Spring配置文件中,`<beans>`元素作为根元素,包含了一系列`<bean>`子元素。每个`<bean>`元素定义了一个Bean实例,它由一个唯一的...
总的来说,JavaBean与Web Form表单的自动装配是通过解析HTTP请求参数,匹配Bean属性,以及调用setter方法完成数据绑定的过程。这种技术在减少代码冗余,提高开发效率方面起到了重要作用。在没有框架支持的情况下,...
但设置了autowire="byName",Spring会在配置文件中自动寻找与属性名字personDao相同的bean,找到后,通过调用setPersonDao(PersonDao personDao)方法将id为personDao的bean自动装配到personService和personAction中...
自动装配是Spring自动检测Bean之间的依赖关系,并自动注入这些依赖的过程。它可以极大减少配置量,但缺点是可能因为过于复杂而难以预测注入结果,特别是在复杂的项目中。Spring提供了五种自动装配模式:no(默认不...
3. **constructor**:构造函数级别的自动装配,Spring会在bean实例化时,通过匹配参数类型的构造函数来注入依赖。 4. **property**:属性级别的自动装配,Spring会在setter方法上进行依赖注入。 5. **autodetect**...
2. `@Autowired`: Spring自动装配的主要注解,用于注入Bean的依赖。当Spring容器找不到精确匹配的类型时,可以通过类型或属性名进行自动匹配。 3. `@Qualifier`: 当有多个相同类型的Bean时,`@Qualifier`可以用来...
在Spring框架中,自动装配(Autowiring)是一种机制,它允许Spring容器自动为bean提供其依赖,而无需显式配置。自动装配极大地简化了应用的配置,使得开发者可以更专注于业务逻辑。本文将深入探讨Spring自动装配的...
文章目录一、注解实现bean自动装配二、注解开发 一、注解实现bean自动装配 自动装配是Spring满足bean依赖一种方式!Spring会在上下文中自动寻找,并自动给bean装配属性! 下面我们来做以下实验 建立如下测试环境:一...
在Spring框架中,自动装配(Auto-Wiring)是一种便捷的方式来管理bean之间的依赖关系,它能够自动将所需的bean注入到目标bean中,而无需显式配置。然而,自动装配并非适用于所有场景,它存在一些限制。以下是一些...
集合自动装配是指Spring框架自动填充List、Map或Set类型的属性,根据配置文件中的bean定义,将相应的bean实例注入到这些集合中。这种方式减少了手动创建和管理对象的复杂性,提高了代码的可维护性和可测试性。 三、...
Spring框架的自动装配Bean功能是为了简化配置,使得开发者无需在XML配置文件中显式指定Bean间的依赖关系。本文将详细讲解Spring中自动装配Bean的三种主要方式:byName、byType以及constructor。这些方法帮助Spring的...
标题中的“Spring自动装配”指的是Spring框架中的一个重要特性,它允许开发者在不显式配置Bean依赖的情况下,由Spring容器自动管理Bean之间的依赖关系。这一特性极大地简化了代码,提高了可维护性和可测试性。 在...
总结,Spring Boot的自动装配和starter技术大大简化了Java应用的配置,通过`@Import`注解和自动配置机制,我们可以高效地管理Bean的生命周期。理解这些原理对于优化和调试Spring Boot应用至关重要。