`
whp0731
  • 浏览: 174789 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring学习之四“自动装配”

阅读更多

一。根据名字自动装配:

前提一、设置default-autowire="byName"

前提二、id="bean5"和bean2中定义的有一个属性叫“bean5”一致

1、配置文件applicationContext-beans.xml

 

<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"          >
<bean id="bean2" class="com.bjsxt.spring.Bean2"/>
	 
	<bean  id="bean5" class="com.bjsxt.spring.Bean5">
		<property name="age" value="20"/>
	</bean>

 

2、配置文件applicationContext-other.xml

   <bean id="beanAbstract" abstract="true">
   		<property name="id" value="1000"/>
   		<property name="name" value="Jack"/>
   </bean>         
   
   <bean id="bean3" class="com.bjsxt.spring.Bean3" parent="beanAbstract">
   		<property name="name" value="Tom"/>
   		<property name="password" value="123"/>
   </bean>        
   
   <bean id="bean4" class="com.bjsxt.spring.Bean4" parent="beanAbstract"/>
</beans>

备注:省略部分bean.java代码:附上Bean2.java

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;
	}
}

 

3、测试代码:

public class AutowireTest extends TestCase {
	
	private BeanFactory factory;
	
	@Override
	protected void setUp() throws Exception {
		factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");	
	}

	public void testAutowire() {
		Bean2 bean2 = (Bean2)factory.getBean("bean2");
		System.out.println("bean2.bean3.id=" + bean2.getBean3().getId());
		System.out.println("bean2.bean3.name=" + bean2.getBean3().getName());
		System.out.println("bean2.bean3.password=" + bean2.getBean3().getPassword());
		System.out.println("bean2.bean4.id=" + bean2.getBean4().getId());
		System.out.println("bean2.bean4.name=" + bean2.getBean4().getName());
		System.out.println("bean2.bean5.age=" + bean2.getBean5().getAge());
	}
	
}

 

 

4、测试结果

bean2.bean3.id=1000
bean2.bean3.name=Tom
bean2.bean3.password=123
bean2.bean4.id=1000
bean2.bean4.name=Jack
bean2.bean5.age=20

 

一。根据类型自动装配:

前提一、设置default-autowire="byType"介意使用这个,名字写错了也不会错

<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="byType"
           >
	
	<!-- 
	<bean id="bean2" class="com.bjsxt.spring.Bean2">
		<property name="bean3" ref="bean3"/>
		<property name="bean4">
			<ref bean="bean4"/>
		</property>	
		<property name="bean5" ref="bean5"/>
	</bean>
	 -->
	
	<bean id="bean2" class="com.bjsxt.spring.Bean2"/>
	 
	<bean id="bean5111" class="com.bjsxt.spring.Bean5">
		<property name="age" value="20"/>
	</bean>
</beans>

 

<bean id="beanAbstract" abstract="true">
   		<property name="id" value="1000"/>
   		<property name="name" value="Jack"/>
   </bean>         
   
   <bean id="bean3222" class="com.bjsxt.spring.Bean3" parent="beanAbstract">
   		<property name="name" value="Tom"/>
   		<property name="password" value="123"/>
   </bean>        
   
   <bean id="bean42222" class="com.bjsxt.spring.Bean4" parent="beanAbstract"/>
</beans>

 

测试代码和测试结果和上面所述一致。

分享到:
评论

相关推荐

    Spring实现自动装配

    在学习自动装配的过程中,建议先从简单的基于类型的自动装配开始,然后逐步掌握基于注解的自动装配。理解每个bean如何被创建、初始化和装配,以及Spring如何处理这些过程,对于深入理解Spring框架至关重要。 本项目...

    spring自动装配

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

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

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

    Spring 自动装配的二义性实例解析

    Spring 自动装配的二义性实例解析 Spring 框架中的自动装配机制是通过 @Autowired ...本文通过示例代码详细介绍了 Spring 自动装配的二义性实例解析问题,并提供了解决该问题的方法,对大家的学习和工作具有参考价值。

    Spring源码学习七:web应用自动装配Spring配置文件1

    本文主要围绕"Spring源码学习七:web应用自动装配Spring配置文件1"这一主题,详细解析Web环境中Spring的初始化过程。 首先,我们注意到在传统的Java应用程序中,通常使用`ClassPathXmlApplicationContext`手动创建...

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

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

    Spring学习笔记&源码

    本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...

    模拟Spring的IoC容器实现注解自动装配

    而注解自动装配(Autowired)是Spring IoC容器的一种高级特性,它允许我们通过注解来声明对象之间的依赖,无需手动编写XML配置。现在,我们将深入探讨如何模拟Spring的IoC容器实现注解自动装配。 首先,我们需要...

    Ext自动装配示例

    在IT行业中,自动装配是一种常见的软件开发技术,特别是在Java Spring框架和前端JavaScript库如Ext JS中。本示例主要探讨的是Ext JS中的自动装配,它主要用于简化组件间的依赖注入,提高代码的可维护性和可扩展性。 ...

    Spring 学习笔记四

    在本篇Spring学习笔记中,我们将深入探讨Spring框架的核心特性,包括依赖注入(Dependency Injection,DI)、AOP(面向切面编程)以及Spring的源码解析,同时也会介绍一些实用的开发工具。通过学习这些内容,我们...

    spring注解 -----最简单的注解与自动装配例子

    本篇文章将深入探讨Spring中的注解,以及如何通过注解进行自动装配。 首先,我们要了解Spring的核心注解,包括@Component、@Service、@Repository和@Controller。这些注解被用来标记不同层次的Java类,方便Spring...

    Spring框架学习笔记

    Spring Boot是基于Spring框架的快速开发工具,它简化了Spring应用的初始搭建以及配置过程,通过内置的Tomcat服务器和自动配置功能,让开发者能够更快地启动和运行应用。 十、Spring Cloud Spring Cloud是建立在...

    Spring学习笔记(7)----装配各种集合类型的属性

    这篇博客文章《Spring学习笔记(7)----装配各种集合类型的属性》可能是对这一主题的深入探讨。 首先,我们要理解Spring的DI机制,它是Spring的核心特性之一,允许我们将组件的依赖关系在运行时自动注入,而不是硬...

    spring学习

    在"spring学习"的资源包中,我们看到三个关于"第四章 Spring的基本用法"的PPT文件,分别是"第一次"、"第三次"和"第二次"。虽然顺序可能有些混乱,但我们可以从中提取出一系列关键知识点。 1. **依赖注入**:Spring...

    使用注解自动装配需要组件扫描.zip

    在Spring框架中,注解自动装配(Annotation-based Autowiring)是一种简化依赖注入(Dependency Injection,简称DI)的方式,它允许开发者用注解来声明类的依赖,而无需使用XML配置文件。本教程将深入讲解如何使用...

    spring2.0学习的案例

    比如,使用`@Component`、`@Service`、`@Repository`和`@Controller`定义Bean,使用`@Autowired`进行自动装配,使用`@Transactional`声明事务管理。 6. **数据访问集成**: Spring支持多种数据访问技术,包括JDBC、...

    spring框架学习笔记

    开发者只需定义对象的配置,容器会根据这些配置自动创建和装配对象。配置可以通过XML、Java注解或基于Java的配置来实现。 三、依赖注入(DI) 依赖注入是IoC的一种实现方式,Spring通过DI使得组件之间的依赖关系由...

Global site tag (gtag.js) - Google Analytics