`

根据名称或类型自动装配(为了减少配置量)

阅读更多
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)自动装配源码

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

    遍历装配体自动图名分离宏

    这个宏程序会遍历装配体中的每一个零部件,自动识别其所有配置,并将配置名称作为图名应用于对应的视图。这样不仅节省了时间,还减少了人为错误的可能性。 使用宏程序的过程一般包括以下步骤: 1. **安装宏**:将...

    Spring的自动装配源代码

    这种特性使得开发者无需显式地在XML配置文件中声明Bean之间的依赖关系,从而减少了配置工作量,提高了代码的可维护性。本文将深入探讨Spring中的六种自动装配方式:byType、byName、no、constructor、autodetect和...

    SpringBoot自动装配原理(简单易懂)

    SpringBoot会根据类型或名称自动找到合适的bean并注入到需要的对象中。 2. **基于注解的配置** SpringBoot的自动装配基于Spring的注解配置,主要利用`@Configuration`和`@Component`这两个核心注解。`@...

    DemoSpringCoC:通过自动装配减少 XML 配置的示例

    为了解决这一问题,Spring引入了基于注解的配置和自动装配(Conventions over Configuration,CoC)的概念。 自动装配允许Spring容器根据一些预定义的规则自动为bean注入其依赖,无需在XML中进行显式声明。这种方式...

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

    它允许开发者在类的字段、方法或构造器上直接声明依赖,大大减少了XML配置的量。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; } ``` 在这个例子中,...

    JSP Spring 自动化装配Bean实例详解

    使用JSP和Spring框架进行Web开发时,Spring的自动装配功能可以大大减少开发者配置Bean的工作量,提高了开发效率和代码的可维护性。通过注解的方式,可以更加直观地管理Bean的生命周期,而且使得代码更加简洁。需要...

    spring-autowire-demo.zip

    2. **byName(按名称自动装配)**: 使用`@Autowired`注解并配合`@Qualifier`注解的名称参数,Spring会查找具有相同名称的bean来注入。例如,如果你有一个名为`dataSource`的bean,你可以在需要注入的地方使用`@...

    solidworks代号名称分离宏命令(属性自定义“或”配置特定中).pdf

    在SolidWorks中,"Solidworks代号名称分离宏命令(属性自定义“或”配置特定“中)"是指一种通过编写宏脚本来实现自动化处理零件、装配体或工程图的属性,将图号(代号)和名称分别存储到不同的自定义属性或配置特定...

    Spring中XML配置的12个技巧

    在Spring框架中,自动装配(auto-wiring)是一种强大的功能,它允许开发者通过元数据(如bean类的自省)自动装配bean之间的依赖关系,从而避免在XML配置文件中显式声明bean的属性或构造函数参数。尽管这一特性可以显著...

    Spring Bean如何实现自动配置代码实例

    自动装配的核心在于减少手动配置的工作量,提高开发效率。在Spring中,自动装配主要有两种方式:基于名称(byName)和基于类型(byType)。此外,随着注解驱动开发的普及,Spring还提供了基于注解的@Autowired和@...

    使用注解方式配置的spring_mvc_3.0

    然而,使用注解配置后,我们可以通过在类或属性上添加`@Component`、`@Service`、`@Repository`或`@Controller`注解,以及在属性上使用`@Autowired`来自动装配依赖,大大简化了配置过程。 #### 结论 基于注解的...

    Spring框架xml注解配置方式实例

    3. **自动装配**:使用`@Autowired`注解可以实现自动装配,Spring会根据类型或名称自动找到合适的依赖并注入。如果需要指定注入的bean,可以使用`@Qualifier`注解。 4. **属性注入**:`@Value`注解允许注入基本类型...

    pring配置文件共5页.pdf.zip

    Spring提供了自动装配功能,通过`autowire`属性可以实现基于名称、类型或注解的自动装配,减少了手动配置的工作量。例如: ```xml ``` 这将尝试找到类型匹配的bean进行自动装配。 七、 Profiles Spring 3.1 ...

    Spring 配XML的十二种技巧.doc

    虽然属性或构造函数参数可以根据类型或名称自动装配,但在大型项目中,这可能导致难以追踪的依赖关系。自动装配可能会隐藏配置细节,降低代码的直观性和维护性,因此建议在实际项目中慎用此特性。 ### 2. 使用命名...

    3Spring使用annotation方式autowire

    Spring的注解驱动自动装配极大地方便了开发,减少了XML配置的工作量,提高了代码可读性和可维护性。通过理解其背后的原理和源码,我们可以更好地掌握Spring框架,提高开发效率。在实际项目中,合理地运用`@Autowired...

    spring配置详解

    Spring的自动装配功能可以减少手动配置的工作量。`autowire`属性可以设置为`byName`、`byType`、`constructor`或`default`,让Spring根据bean的名称、类型或构造器自动查找并注入依赖。 七、Spring与其他技术的集成...

    solidworks-VB 修改零件名字VB插件

    VB插件能够自动生成和更新BOM清单,包括数量、材质、供应商等信息,极大地减少了人工编制BOM的工作量,并提高了准确性。 5. **集成工作流程**:此插件能与SolidWorks的现有工作流程无缝集成,用户无需离开软件界面...

Global site tag (gtag.js) - Google Analytics