struct2.1笔记03:AOP编程和拦截器概念的简介

1.AOP编程

AOP编程,也叫面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。   AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。 
可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。

2.拦截器

拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 
拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。

拦截器栈(Interceptor Stack)类似于过滤器链。拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器栈的拦截器就会按其之前定义的顺序被调用。

也可以叫做拦截器链(Interceptor Stack),拦截器栈一词更明确的表名了连接器链的实现方式。

Struts2的拦截器和Filter类似。在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法。

当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器

时间: 2024-08-25 16:07:12

struct2.1笔记03:AOP编程和拦截器概念的简介的相关文章

Spring AOP原理及拦截器

原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent).事务管理(Transaction Management).安全管理(Security).日志管理(L

myBatis学习笔记(10)——使用拦截器实现分页查询

1. Page package com.sm.model; import java.util.List; public class Page<T> { public static final int DEFAULT_PAGE_SIZE = 20; protected int pageNo = 1; // 当前页, 默觉得第1页 protected int pageSize = DEFAULT_PAGE_SIZE; // 每页记录数 protected long totalRecord = -1

spring aop中引介拦截器的用法

public class Other implements IntroductionInterceptor,IOther{ public void doOther(){ System.out.println("Other对象的功能"); } public Object invoke(MethodInvocation methodInvocation) throws Throwable { if(implementsInterface(methodInvocation.getMethod

[翻译]AOP编程

翻译文章链接http://www.codeproject.com/Articles/1080517/Aspect-Oriented-Programming-using-Interceptors-wit 标题:利用拦截器(Interceptors)实现面向切面编程(AOP) 内容: 1 介绍 1.1 什么是AOP和方法拦截器 1.1.1 手工实现(不采用AOP) 1.1.2 AOP实现 1.2 关于例程 2 创建拦截器 3 注册拦截器 -------------------------------

interceptor拦截器实现aop

项目开发过程中,总会出现一些公共性的基础性服务.例如:日志.事务等等.即使在之前的OO的开发过程中,利用封装.继承.多态这些特性已经使开发趋于这样一个比较易扩展.易维护的开发流程.但是对于这些公共性的服务,开发者越来越发现这些代码总是在不断的重复.所以AOP应势而生,基于切面编程其实基于OO这样一个开发理念而形成的.好了,关于AOP的充电过程自行去了解. 直入正题,本文主要是通过interceptor结合ejb的client调用server来实现这样一个aop的效果. 项目驱动,简单介绍一下大体

java拦截器(Interceptor)学习笔记

1,拦截器的概念    java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式.在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作.目前,我们需要掌握的主要是Spring的拦截器,Struts2的拦截器不用深究,知道即可. 过滤器.监听器.拦截器差异图2,拦截器的原理    大部分时候,拦截

EJB学习笔记六(EJB中的拦截器)

 1.前言 听到拦截器,估计都不陌生,尤其是在Servlet规范中,充分应用了拦截器的概念.EJB3也提供了拦截器的支持,本质上是轻量级的AOP实现,拦截器可以将多个业务方法中的通用逻辑从业务方法中抽离出来,放在拦截器中实现,从而实现极好的代码复用. 2.EJB中的拦截器 Spring中的AOP实现提供了@Before.@AfterReturning.@AfterThrowing等大量的Annotation,这些注解用于定义功能丰富的增强处理,可是在EJB的拦截器没有打算实现完整的AOP ,只是

struts自定义拦截器

第01步:配置web.xml,启动struts框架 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca

Java三大器之拦截器(Interceptor)的实现原理及代码示例

前言:前面2篇博客,我们分析了Java中过滤器和监听器的实现原理,今天我们来看看拦截器. 1,拦截器的概念    java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式.在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作.目前,我们需要掌握的主要是Spring的拦截器,Struts2的拦截器