`

spring学习实例之装手动装配自动装配

阅读更多
来学习下装配相关:
手动装配:手动的将bean中所关联的其他bean装配进去。使用以下方法:
<property><ref bean=""></property>
自动装配:使用autowire关键字声明bean的自动装配方式。其可选值为byName、byType、constructor等。

包结构:


源代码:
ItemDao.java
package dao;

public interface ItemDao {
	void update();
}

ItemDaoImpl.java
package dao;

public class ItemDaoImpl implements ItemDao{
	public void update(){
		System.out.println("update item .");
	}
}


OrderDao.java
package dao;

public interface OrderDao {
	void save();
}

OrderDaoImpl.java
package dao;

public class OrderDaoImpl implements OrderDao{
	public void save(){
		System.out.println("save order .");
	}
}


StoreService.java
package service;

public interface StoreService {
	void submitOrder();
}

StoreServiceImpl.java
package service;

import dao.ItemDao;
import dao.OrderDao;

public class StoreServiceImpl implements StoreService {
	public ItemDao itemDao;
	public OrderDao orderDao;

	public void setItemDao(ItemDao itemDao) {
		this.itemDao = itemDao;
	}

	public void setOrderDao(OrderDao orderDao) {
		this.orderDao = orderDao;
	}

	public void submitOrder() {
		orderDao.save();
		itemDao.update();
	}
}


手动装配配置文件:
<?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:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	
	<bean id="orderDao" class="dao.OrderDaoImpl"></bean>
	<bean id="itemDao" class="dao.ItemDaoImpl"></bean>

	<bean id="storeService" class="service.StoreServiceImpl">
		<property name="orderDao">
			<ref bean="orderDao"/>
		</property>
		<property name="itemDao">
			<ref bean="itemDao"/>
		</property>
	</bean>
</beans>

自动装配配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byType"
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	
	<bean class="dao.OrderDaoImpl" autowire="byName"></bean>
	<bean class="dao.ItemDaoImpl"></bean>
	<bean id="storeService" class="service.StoreServiceImpl"></bean>
	
</beans>

以上配置文件中default-autowire="byType"指明默认装配形式为byType(根据类型)。
在具体的bean中也可以单独定制自动装配方式。<bean class="dao.OrderDaoImpl" autowire="byName"></bean>这行则指明了该bean的自动中配为byName(根据名字)。

测试类Test.java
package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import service.StoreService;

public class Test {
	public static void main(String[]args){
		//加载手动装配配置文件
		ApplicationContext ac=new ClassPathXmlApplicationContext("ApplicationContext.xml");
		StoreService storeService=(StoreService)ac.getBean("storeService");
		storeService.submitOrder();
		
		//加载自动装配配置文件
		ApplicationContext ac_autowire=new ClassPathXmlApplicationContext("ApplicationContext_autowire.xml");
		StoreService storeService_autowire=(StoreService)ac.getBean("storeService");
		storeService_autowire.submitOrder();
	}
}

  • 大小: 8.6 KB
分享到:
评论

相关推荐

    spring学习之四“自动装配”

    3. **constructor**:构造函数级别的自动装配,Spring会在bean实例化时,通过匹配参数类型的构造函数来注入依赖。 4. **property**:属性级别的自动装配,Spring会在setter方法上进行依赖注入。 5. **autodetect**...

    Spring实现自动装配

    本项目提供了使用Spring实现自动装配的实例,初学者可以通过分析代码,实践运行,观察不同装配方式的效果,加深对Spring DI的理解。通过这种方式,不仅可以提升编程技能,还能提高解决问题的能力,为未来更复杂的...

    Spring自动装配解析

    Spring框架是Java开发中广泛应用的一个轻量级容器,它的核心特性之一就是依赖注入(Dependency Injection,简称DI),而Spring的自动装配(Auto-Wiring)则是DI的一种实现方式。本篇文章将深入探讨Spring自动装配的...

    spring自动装配

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

    spring自动装配项目struts2

    自动装配是Spring框架的核心特性之一,它允许框架自动管理对象之间的依赖关系,无需在代码中显式地创建或查找依赖对象。Spring提供了多种自动装配方式,如byType、byName等,可以根据配置或注解来实现。在项目中,...

    spring中的自动装配实例byName、byType

    在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入的方式,它允许Spring容器自动为bean找到并设置其依赖。本篇文章将深入探讨两种主要的自动装配方式:byName和byType,以及它们在实际应用中的实例。 **1...

    4Spring自动装配——annotation resource方式

    在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入(Dependency Injection,DI)配置的方式,它允许Spring容器自动管理Bean之间的依赖关系。本文将深入探讨如何通过注解(Annotation)和`@Resource`来实现...

    Spring由类型(Type)自动装配源码

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

    springframework实例代码

    在Spring实例代码中,我们可能还会看到Spring与这些技术的整合,如使用Spring Boot启动应用,配合MyBatis进行数据访问,以及使用AngularJS构建前端交互。 总的来说,"springframework实例代码"将涵盖Spring框架的...

    Spring自动装配@Qualifier实例

    在Spring框架中,`@Autowired`注解是用于自动装配bean的一种方式,它可以根据类型匹配找到合适的bean进行注入。然而,当存在多个相同类型的bean时,Spring可能无法确定应该注入哪一个。这时,`@Qualifier`注解就派上...

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

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

    spring装配bean实例代码

    在Spring框架中,Bean装配是核心功能之一,它负责初始化、配置和管理应用程序中的对象。本文将深入探讨Spring装配Bean的实例代码,帮助你更好地理解这一关键概念。 首先,Spring装配Bean主要有两种方式:XML配置和...

    Spring的自动装配源代码

    在Spring框架中,自动装配(Auto-Wiring)是一种简化配置的方式,它允许Spring容器自动为Bean提供依赖。这种特性使得开发者无需显式地在XML配置文件中声明Bean之间的依赖关系,从而减少了配置工作量,提高了代码的可...

    VS手动装配

    自动装配就是开发人员不必知道具体要装配哪个bean的引用,这个识别的工作会由spring来完成。与自动装配配合的还有“自动检测”,这 个动作会自动识别哪些类需要被配置成bean,进而来进行装配。这样我们就明白了,...

    Spring装配bean方法实例总结

    Spring装配bean方法实例总结是对Spring框架中bean装配机制的总结,包括XML配置、自动装配和Java配置等多种方式。通过学习和掌握这些知识点,可以更好地使用Spring框架进行开发。 五、实践经验 在实践中,我们可以...

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

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

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

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

    面试官常问的spring依赖注入和bean的装配问题.pdf

    在Spring Boot中,尽管自动化配置十分便捷,但仍然可以通过@Primary、@Qualifier、@Resource等注解来手动装配依赖。 总结来说,Spring框架的依赖注入和Bean装配是面试中的热点问题,掌握它们对于每一个Spring开发者...

    手动实现SpringBoot自动装配类

    在Spring Boot应用中,自动装配(Auto Configuration)是框架的核心特性之一,它使得开发者无需编写大量繁琐的配置代码,即可让应用中的各种组件自动协同工作。本教程将深入讲解如何手动实现Spring Boot的自动装配类...

Global site tag (gtag.js) - Google Analytics