PS:开发阶段不建议使用自动装配,以为它会使得类与类之间的依赖关系变得不明确!
加入有一个bean Bean2.java,它依赖于Bean3 ,Bean4 ,Bean5,代码如下:
public class Bean2 {
private Bean3 bean3;
private Bean4 bean4;
private Bean5 bean5;
public Bean3 getBean3() {
return bean3;
}
public void setBean3(Bean3 bean3) {
this.bean3 = bean3;
}
public Bean4 getBean4() {
return bean4;
}
public void setBean4(Bean4 bean4) {
this.bean4 = bean4;
}
public Bean5 getBean5() {
return bean5;
}
public void setBean5(Bean5 bean5) {
this.bean5 = bean5;
}
}
spring配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire="byName"//注意这里,加上需要的装配样式,如果是根据类型自动装配就是byType
>
<!-- 原来是这样写的
<bean id="bean2" class="com.bjsxt.spring.Bean2">
<property name="bean3" ref="bean3"/>
<property name="bean4" ref="bean4"/>
<property name="bean5" ref="bean5"/>
</bean>
-->
<!--现在只需要这样写-->
<bean id="bean2" class="com.bjsxt.spring.Bean2"/>
<bean id="bean3" class="com.bjsxt.spring.Bean3"/>
<bean id="bean4" class="com.bjsxt.spring.Bean4"/>
<bean id="bean5" class="com.bjsxt.spring.Bean5"/>
</beans>
注意:
如果是根据名称自动装配(byName),那么bean2里的属性bean3,bean4,bean5就要和配置文件中的id一致,否则spring会找不到相应的名称而报错。
如果是根据类型自动装配(byType),则属性名和id号可以不一致,因为是以类型自动装配的,spring会自动根据‘类型’自动装配。
分享到:
相关推荐
在Spring框架中,类型(Type)自动装配是一种自动配置机制,它允许我们通过类型匹配来注入依赖。这种机制简化了代码,减少了手动设置bean依赖的工作量。本文将深入解析Spring如何实现类型自动装配的源码。 首先,让...
这个宏程序会遍历装配体中的每一个零部件,自动识别其所有配置,并将配置名称作为图名应用于对应的视图。这样不仅节省了时间,还减少了人为错误的可能性。 使用宏程序的过程一般包括以下步骤: 1. **安装宏**:将...
这种特性使得开发者无需显式地在XML配置文件中声明Bean之间的依赖关系,从而减少了配置工作量,提高了代码的可维护性。本文将深入探讨Spring中的六种自动装配方式:byType、byName、no、constructor、autodetect和...
SpringBoot会根据类型或名称自动找到合适的bean并注入到需要的对象中。 2. **基于注解的配置** SpringBoot的自动装配基于Spring的注解配置,主要利用`@Configuration`和`@Component`这两个核心注解。`@...
为了解决这一问题,Spring引入了基于注解的配置和自动装配(Conventions over Configuration,CoC)的概念。 自动装配允许Spring容器根据一些预定义的规则自动为bean注入其依赖,无需在XML中进行显式声明。这种方式...
它允许开发者在类的字段、方法或构造器上直接声明依赖,大大减少了XML配置的量。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; } ``` 在这个例子中,...
使用JSP和Spring框架进行Web开发时,Spring的自动装配功能可以大大减少开发者配置Bean的工作量,提高了开发效率和代码的可维护性。通过注解的方式,可以更加直观地管理Bean的生命周期,而且使得代码更加简洁。需要...
2. **byName(按名称自动装配)**: 使用`@Autowired`注解并配合`@Qualifier`注解的名称参数,Spring会查找具有相同名称的bean来注入。例如,如果你有一个名为`dataSource`的bean,你可以在需要注入的地方使用`@...
在SolidWorks中,"Solidworks代号名称分离宏命令(属性自定义“或”配置特定“中)"是指一种通过编写宏脚本来实现自动化处理零件、装配体或工程图的属性,将图号(代号)和名称分别存储到不同的自定义属性或配置特定...
在Spring框架中,自动装配(auto-wiring)是一种强大的功能,它允许开发者通过元数据(如bean类的自省)自动装配bean之间的依赖关系,从而避免在XML配置文件中显式声明bean的属性或构造函数参数。尽管这一特性可以显著...
自动装配的核心在于减少手动配置的工作量,提高开发效率。在Spring中,自动装配主要有两种方式:基于名称(byName)和基于类型(byType)。此外,随着注解驱动开发的普及,Spring还提供了基于注解的@Autowired和@...
然而,使用注解配置后,我们可以通过在类或属性上添加`@Component`、`@Service`、`@Repository`或`@Controller`注解,以及在属性上使用`@Autowired`来自动装配依赖,大大简化了配置过程。 #### 结论 基于注解的...
3. **自动装配**:使用`@Autowired`注解可以实现自动装配,Spring会根据类型或名称自动找到合适的依赖并注入。如果需要指定注入的bean,可以使用`@Qualifier`注解。 4. **属性注入**:`@Value`注解允许注入基本类型...
Spring提供了自动装配功能,通过`autowire`属性可以实现基于名称、类型或注解的自动装配,减少了手动配置的工作量。例如: ```xml ``` 这将尝试找到类型匹配的bean进行自动装配。 七、 Profiles Spring 3.1 ...
虽然属性或构造函数参数可以根据类型或名称自动装配,但在大型项目中,这可能导致难以追踪的依赖关系。自动装配可能会隐藏配置细节,降低代码的直观性和维护性,因此建议在实际项目中慎用此特性。 ### 2. 使用命名...
Spring的注解驱动自动装配极大地方便了开发,减少了XML配置的工作量,提高了代码可读性和可维护性。通过理解其背后的原理和源码,我们可以更好地掌握Spring框架,提高开发效率。在实际项目中,合理地运用`@Autowired...
Spring的自动装配功能可以减少手动配置的工作量。`autowire`属性可以设置为`byName`、`byType`、`constructor`或`default`,让Spring根据bean的名称、类型或构造器自动查找并注入依赖。 七、Spring与其他技术的集成...
VB插件能够自动生成和更新BOM清单,包括数量、材质、供应商等信息,极大地减少了人工编制BOM的工作量,并提高了准确性。 5. **集成工作流程**:此插件能与SolidWorks的现有工作流程无缝集成,用户无需离开软件界面...