- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Spring的AOP_3》.pdf
Spring的AOP
AOP概述
编程语言最终极的目标就是能以更自然,更灵活的方式模拟世界,从
原始机器语言道过程语言在岛面向对象的语言,编程语言一步步地用
更自然,更强大的方式描述软件。
AOP是软件开发饲养发展到一定阶段的产物,但AOP 的出现并不是要
完全代替OOP,而仅仅是作为OOP的有益补充。虽然AOP作为一项
编程技术已经有多年的历史,但一直长时间停顿在学术领域,直到近
几年,AOP才作为一项真正的实用技术在应用领域开疆扩土。
需要指出的是AOP 的应用场合是受限的,它一般只适合用于那些具有
横切逻辑的应用场合:如性能监测,访问控制,事物管理以及日志记
录(虽然很多讲解日志记录的例子用于AOP 的讲解,但很多人认为很
难用AOP编写实用日志。)
不过,这丝毫不影响AOP作为一种新的软件开发思想在软件开发领域
所占的地位。
AOP到底是什么
AOP 是Aspect Oriented Programing 的简称,最初被翻
译为“面向方面编程”,这个翻译向来为人所诟病,但是由
于先入为主的效应,受众广泛,所以这个翻译依然被很多
人使用。但我们更倾向于用“面向切面编程”的译法,因为
他表达更加准确。
AOP是一个软件层面的高度抽象,在现实世界中很难找到
贴切的对应物,所以没有办法也只能同其他的讲解一样通
过代码来帮助大家理解AOP 的概念。
什么是代理模式及JDK动态代理
代理模式:为目标对象提供一种代理以控制对这个对象的访问模式。
举个简单例子:一个客户想卖房子,这个过程需要了解房产市场,同
买方协商,交易成功后还需要办理过户,而且他还一下找不到买家,
这时他找到了房屋中介,希望房屋中介暂时代理他完成上面的操作并
找到好买家卖个好价钱。这时卖房子客户就成为了代理的目标对象,
而房屋介成为了代理对象。在卖房子过程中卖方无需关注上述繁琐的
操作只需房屋中介找到买家后出售房屋即可,在出售房屋时候房屋中
介就用代理的方式访问了目标对象--卖房者。在卖房子过程中了解市
场,协商买方,办理过户这些操作都由房屋中介来完成,卖方只需要
知道我的房子卖了多少钱这个业务逻辑了,这就是的代理模式。
代理模式有三个角色
代理模式一般涉及到的角色有:
抽象角色:声明真实对象和代理对象的共同接口;
代理角色:代理对象角色内部含有对真实对象的引用,从
而可以操作真实对象,同时代理对象提供与真实对象相同
的接口以便在任何时刻都能代替真实对象。同时,代理对
象可以在执行真实对象操作时,附加其他的操作,相当于
对真实对象进行封装。
真实角色:代理角色所代表的真实对象,是我们最终要引
用的对象。
JDK动态代理示例-1
UserService接口: UserServiceImpl实现类:
public interface UserService { public class UserServiceImpl implements UserService {
void addUser(String username,String password); public void addUser(String username, String password)
{
void deleteUser(int id); System.out.println(增加用户);
}
void updateUser(i
文档评论(0)