- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring框架使用-理解DI
Spring 框架的使用
通过代码来理解ID (依赖注入)与AOP (面向切面编程)
作者:杜鹏
目录
一、依赖注入(DI)与控制反转(IOC)2
二、面向方面编程(AOP )10
三、总结16
一、依赖注入(DI)与控制反转(IOC)
首先来介绍一下DI 与IOC 的概念吧。依赖注入:在程序运行时,需要某个对象,而这
个对象不是通过new 的方式创建出来的,而是在程序运行时由Spring 容器通过set 方法注入
进来的。传统的编码方式,由于是在代码逻辑中通过 new 对象的形式创建出来的对象,所
以在程序编译的时候,我们就已经知道将会创建哪个对象。而通过依赖注入的方式编码,由
于是通过 Spring 容器注入的,所以只有当程序真正运行起来的时候,我们才知道它创建了
哪个对象。
采用依赖注入的方式进行编码,我们声明接口,在自己的程序中调用,而每个我们声明
的接口可以有很多种不同的实现类,这个时候我们通过 Spring 的配置文件,动态的管理具
体调用哪个类,这使得我们编码更加灵活。
控制反转其实是依赖注入的另外一种理解,本质上是同一种编码设计思想。控制反转:
原来的应用程序,都是由程序决定使用哪个对象,而IOC 则是在程序中声明接口,创建使用
哪个对象,由Spring 的配置文件决定。
1.1 Spring “依赖注入”的使用
我们通过一个小小的程序例子来理解和使用 DI。情况是这样的,我们要开发一个打印
机模拟程序,要求是①可以灵活的配置使用彩色墨盒还是灰色墨盒;②可以灵活的配置打印
页面的大小,如使用A4 纸或者A3 纸。
假定A4 纸行可打印10 个字,没页显示8 行,A3 纸每行打印6 个字,每页显示5 行。
我们先写一段传统代码实现。
package com.gobang.test.ink;
/**
* 墨盒接口
*
* @author Dupeng
*
*/
public interface Ink {
public String getColor(int r, int g, int b);
}
package com.gobang.test.ink;
import java.awt.Color;
/**
* 彩色墨盒
*
* @author Dupeng
*
*/
public class ColorInk implements Ink {
public String getColor(int r, int g, int b) {
Color color = new Color(r, g, b);
return #
+ Integer.toHexString (color.getRGB()).substring(2)
.toUpperCase();
}
}
package com.gobang.test.ink;
import java.awt.Color;
/**
* 灰色墨盒
*
* @author Dupeng
*
*/
public class GreyInk implements Ink {
public String getColor(int r, int g, int b) {
int c = (r + g + b) / 3;
Color color = new Color(c, c, c);
return #
+ Integer.toHexString (color.getRGB()).substring(2)
.toUpperCase();
}
}
package com.gobang.test.paper;
/**
* 打印纸接口
*
* @author Dupeng
*
*/
public interface Paper {
public st
文档评论(0)