- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
spring-day04(spring-day04)
spring-day04(spring-day04)
3 ~ 4 / 10 | 2009 - 06 - 18 | 星期四
aop
概念
经典aop实现 jump
spring 2.0 基于xml声明的aop实现
------------------------
相关概念
面向方面 (切面) 的编程
aspect oriented programming
关注点 (group)
应用要考虑的问题或者说应用要达到的目标
比如: 业务逻辑, 安全, db事务边界, 持久化, 远程服务等
在一般oop应用中,
安全检查, db事务控制, 日志等代码 穿插 在业务逻辑中
这种代码被称为横切关注点 (cross cutting 这里一条语句 group), 那里一条语句, 穿插在里面
注意: oop不能把横切关注点模块化的因为没有什么顺序可言, 而aop就是解决这个问题的
方面 (aspect)
就是横切关注点 (主要有行为和位置), 在 jump 中由advisor表示 aop编程: 抽象出aspect 对aspect编程,
行为是 advice (抽象出的行为)
位置是pointcut
织入 (weaving)
把 aspect 加入到核心业务逻辑中
织入由aop框架实现, 不需要编程 通过代理实现的, 生成代理核心类proxyfactorybean
aop的目标或意义
将 aspect 与 核心业务逻辑 解耦 (将非业务逻辑写到别处, 运行时再织入 (通过配置文件实现 内存中实现的))
示例: 表演前观众入座
核心接口和类:
methodbeforeadvice - 接口, 需实现, 提供切面前置行为
jdkregexpmethodpointcut - 实现类, 需配置, 以正则表达式匹配方法
defaultpointcutadvisor - 实现类, 需配置
proxyfactorybean - 实现类, 需配置
理解:
代理模式 - actable, actor, broker
advice - - what, 要加入的行为是什么
pointcut - where, 在哪里加入行为 (与哪个业务方法关联)
aspect - 即advisor, 由advice + pointcut组合而成
target - 业务逻辑对象 aspect 被织入的目标
factorybean - 工厂bean, 用于生成其他类型bean的bean
修改: 使用regexpmethodpointcutadvisor
内置了pointcut的advisor
advisor是加了过滤器的advice
演员表演前加入观众就坐的行为, 业务方法执行前执行
示例: 观众鼓掌及抗议
核心接口:
afterreturningadvice
throwsadvice
理解:
advice (what, when) - 要做什么, 及什么时候做 (与业务方法的先后关系)
的方法的参数 advice
修改: 使用 methodinterceptor
三项全能的 advice
示例: 表演前剧院先开门 - 又一个aspect
理解:
一个目标对象可以添加多个aspect
自动代理创建器
若有多个对象需要织入aspect, 则需要一一声明相应的代理
自动代理创建器可以使你摆脱这个麻烦
示例: 为teacher - 新expert, 织入即有的 aspect
有接口则自动生成代理对象
没有接口创建子类重写方法然后注入行为, 调用父类的方法
自动为所有的advisor (指定的行为和位置) 创建代理对象
bean class = defaultadvisorautoproxycreator
xml based aop
任意个字符两个组合 * work.
Spring 2 defines POJO as Aspect through the XML tag declaration.
The new tag is based on the namespace of the AOP, not the beans
Example: use the XML declaration to make the audience seated before the show
Example: woven into other behaviors of the audience
Core tags: refer to spring-reference
Aop:config, including pointcut, aspect and so on, can appear many times / root tag
Aop:aspect - a reference to the POJO, cont
您可能关注的文档
- cis应用(CIS applications).doc
- class.forname()介绍(Class.forname () Introduction).doc
- cail(考尔).doc
- cmd下导入mysql数据(Importing MySQL data under CMD).doc
- cnca-02c-026 2005机动车辆类强制性认证实施规则 汽车安全带产品(Cnca-02c-026 2005 motor vehicles compulsory certification rules for automobile safety belt products).doc
- cnc宏程式(CNC macro program).doc
- cmd中的运行命令(Run command in CMD).doc
- co2气体保护焊焊接补充方案(Supplementary scheme for CO2 gas shielded arc welding).doc
- coreldraw通用问题(CorelDRAW general problem).doc
- cpanel虚拟主机管理系统注意事项(CPanel virtual host management system considerations).doc
- spice搭建(香料搭建).doc
- qq空间代码,qq空间免费皮肤代码,qq空间留言代码,qq空间模块(QQ space code, QQ space free skin code, QQ space message code, QQ space module).doc
- sqlhelper通用类库(cplus)(Sqlhelper通用类库 (cplus)).doc
- sqlserversql导入导出语句(Sqlserversql import and export statements).doc
- sql2000数据库导出和导入教程(SQL2000 database export and import tutorials).doc
- sqlserver导入导出大全(Sqlserver import and export Daquan).doc
- sql like--即时库存查询(SQL like-- instant stock query).doc
- sql数据库导入导出(Import and export SQL database).doc
- sqlserver建立索引 注意的问题(The problem of index creation in sqlserver).doc
- sql规范(SQL specification).doc
文档评论(0)