`

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中的自动装配实例byName、byType

    spring中的自动装配实例byName、byType,两种装配方式的实例。有需要学习的朋友可以看一下。

    VS手动装配

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

    spring装配bean实例代码

    博客地址:https://blog.csdn.net/u010476739/article/details/76732201 spring装配bean的方式实例

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

    自己实现的简易的模拟Spring的IoC容器,实现注解自动装配

    Spring装配bean方法实例总结

    主要介绍了spring装配bean方法实例总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

    主要介绍了Spring 自动装配的二义性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

    主要介绍了JSP Spring 自动化装配Bean实例详解的相关资料,需要的朋友可以参考下

    spring2.5学习PPT 传智博客

    spring2.5学习PPT 传智博客 01_全面阐释Spring及其各项功能 02_搭建与测试Spring的开发环境 03_编码剖析Spring管理Bean的原理 04_Spring的三种实例化Bean的方式 05_配置Spring管理的bean的作用域 06_Spring...

    spring的详细介绍

    Spring介绍 1. Spring 2. 使用spring的主要目的 3. Spring的模块 Ejb容器(以前是) ...10. 自动装配(不建议使用) 11. 依赖检查 12. 定义IoC容器管理的javabean的生命周期回调方法 13. 接口FactoryBean的使用

    Spring — 基于Java类的配置 代码实例

    基于Java类的配置方法和基于XML或基于注解的配置方式相比,前者通过代码的方式更加灵活地实现Bean的实例化及Bean之间的装配,但后面两者都是通过配置声明的方式,在灵活性上要稍逊一些,但是配置上要更简单一些。

    spring装配bean的3种方式总结

    主要给大家介绍了关于spring装配bean的3种方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Spring与Struts整合之使用自动装配操作示例

    主要介绍了Spring与Struts整合之使用自动装配操作,结合实例形式详细分析了Spring与Struts整合使用自动装配具体操作步骤与相关实现技巧,需要的朋友可以参考下

    详解Spring框架---IOC装配Bean

    本篇文章主要介绍了详解Spring框架---IOC装配Bean,提供了三种方式实例化Bean,具有一定的参考价值,有兴趣的可以了解一下。

    Springboot自动装配实现过程代码实例

    主要介绍了Springboot自动装配实现过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring的学习笔记

    八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:...

    spring-learn:Spring轻松学习demo

    Spring学习 介绍 Spring轻松学习demo 1.弹簧IOC容器 1.弹簧注入方式 set方法注入 构造方法注入 2.Bean的装配 1.豆的作用域 单例单例获取 原型每次请求都创建实例 2.豆的生命周期 定义,初始化,使用,销毁 待补充......

    spring源码底层解析(1.81G)

    spring源码底层分析(1.81G)〖课程介绍〗:Spring启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供...

    Spring中的Bean的管理_Bean的装配方式_基于注解的装配_项目

    目的:Spring容器已经成功获取了UserController实例,并通过调用实例中的方法执行了各层中的输出语句。 运行结果为: User [id=1, name=张三, password=123] userDao say hello world! UserService say hello world ...

Global site tag (gtag.js) - Google Analytics