Spring自学教程-IOC、DI、AOP(二)

- 通过set方式赋值
- 基本类型都可以用value来赋值(包装类型和string类型)

- 引用类型用ref赋值


- list类型的赋值,set的赋值与list一样

- map类型的赋值

- properties类型的赋值




Document类
public interface Document {
public void read();
public void write();
}
DocumentManager类
/**
* 利用spring的ioc和di做到了完全的面向接口编程
*@author Administrator
*
*/
public class DocumentManager {
private Document document;
public Document getDocument() {
return document;
}
public void setDocument(Document document) {
this.document = document;
}
public void read(){
this.document.read();
}
public void write(){
this.document.write();
}
}
ExcelDocument、PDFDocument、WordDocument类
public class ExcelDocument implements Document{
@Override
public void read() {
// TODO Auto-generated method stub
System.out.println("excel read");
}
@Override
public void write() {
// TODO Auto-generated method stub
System.out.println("excel writer");
}
}
DocumentTest类
import org.junit.Test;
import cn.itcast.spring0909.utils.SpringHelper;
public class DocumentTest extends SpringHelper{
static{
path = "cn/itcast/spring0909/document/spring/applicationContext.xml";
}
@Test
public void test(){
DocumentManager documentManager = (DocumentManager)context.getBean("documentManager");
documentManager.read();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 把documentManager,worddocument,exceldocument,pdfdocument -->
<bean id="documentManager" class="cn.itcast.spring0909.document.spring.DocumentManager">
<!--
document是一个接口
-->
<property name="document">
<!--
通过ref给接口赋值
-->
<ref bean="wordDocument"/>
</property>
</bean>
<bean id="wordDocument" class="cn.itcast.spring0909.document.spring.WordDocument"></bean>
<bean id="excelDocument" class="cn.itcast.spring0909.document.spring.ExcelDocument"></bean>
<bean id="pdfDocument" class="cn.itcast.spring0909.document.spring.PDFDocument"></bean>
</beans>

Spring自学教程-IOC、DI、AOP(二)的更多相关文章
- JAVAWEB 一一 框架整合(SSH,Spring+Struts2+Hibernate IOC/DI AOP声明式事务处理 定时任务)
package org.springframework.orm.hibernate3; import java.io.Serializable; import java.util.List; impo ...
- Spring中的IOC\DI\AOP等概念的简单学习
IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终, 所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系.Spr ...
- 详谈 Spring 中的 IOC 和 AOP
这篇文章主要讲 Spring 中的几个点,Spring 中的 IOC,AOP,下一篇说说 Spring 中的事务操作,注解和 XML 配置. Spring 简介 Spring 是一个开源的轻量级的企业 ...
- Spring核心思想Ioc和Aop (面试)
Spring核心思想Ioc和Aop (面试) 注意: Ioc和Aop并不是Spring提出的,在Spring之前就已经存在,Spring只是在技术层面给这两个思想做了非常好的实现. 1 Ioc 1.1 ...
- Spring 学习教程(二): IOC/DI+AOP
1. IOC / DI Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序员 ...
- spring IOC DI AOP MVC 事务, mybatis 源码解读
demo https://gitee.com/easybao/aop.git spring DI运行时序 AbstractApplicationContext类的 refresh()方法 1: pre ...
- spring+IOC+DI+AOP优点分析(一)
Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于sprin ...
- Spring+IOC(DI)+AOP概念及优缺点
Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应 ...
- Spring理解IOC,DI,AOP作用,概念,理解。
IOC控制反转:创建实例对象的控制权从代码转换到Spring容器.实际就是在xml中配置.配置对象 实例化对象时,进行强转为自定义类型.默认返回类型是Object强类型. ApplicationCon ...
随机推荐
- 【贪心】 poj 1032 和为n的若干数最大乘积
给出n,把n分解为若干不相同数之和,使之乘积最大.贪心,Discuss里面的思路:把n分解为从2开始的连续整数,如果有多,则从高位开始依次加1.如26,我们得到2+3+4+5+6,此时还剩余6(26- ...
- A convenient way of installing(compiling) VIM with YCM
Ah, while I am still downloading LLVM from github(very slow.. and very large in size). I come with m ...
- UIImageView 的contentMode属性 浅析
UIImageView 的contentMode这个属性是用来设置图片的显示方式,如居中.居右,是否缩放等,有以下几个常量可供设定:UIViewContentModeScaleToFillUIView ...
- JS定时器的使用--延时提示框
<title>无标题文档</title> <style> div{float:left;margin:10px;} #div1{width:50px; height ...
- 简单时钟——css3
这里我们使用css3的特性制作一个简易的时钟,代码如下: <!DOCTYPE html><html> <head> <meta charset="U ...
- java synchronized内置锁的可重入性和分析总结
最近在读<<Java并发编程实践>>,在第二章中线程安全中降到线程锁的重进入(Reentrancy) 当一个线程请求其它的线程已经占有的锁时,请求线程将被阻塞.然而内部锁是可重 ...
- Linux学习 -- 日志管理
日志服务 rsyslogd CentOS6 取代了原来的syslog rsyslogd 默认启动.自启动 常用命令:lastb.lastlog.last.w.who.users. 系统默认日志 和 ...
- CodeForces 525D Arthur and Walls
广搜.看了官方题解才会的..... 定义2*2的小矩阵,有三个是点,一个是星,这样的小矩阵被称为元素块. 首先把所有元素块压入队列,每次取出对头,检查是否还是元素块,如果是 那么将那个*改为点,否则跳 ...
- SGU_390_Tickets(另类数位DP)
Tickets Time Limit : 1000/500ms (Java/Other) Memory Limit : 524288/262144K (Java/Other) Total Subm ...
- C#入门经典第11章集合-1