使用Spring内置拦截器为Struts动作在每个方法调用之前打印一句话
来源:互联网 发布:md5算法代码 编辑:程序博客网 时间:2024/04/27 20:20
虽然Spring提供很多内置拦截器,但是我将向您展示如何创建自己的拦截器并把它应用于一个Struts动作。为了使用拦截器,您需要做三件事:
1、创建拦截器;
2、注册拦截器;
3、声明在何处拦截代码。
这看起来非常简单的几句话却非常强大。例如,在清单7中,我为Struts动作创建了一个日志记录拦截器。这个拦截器在每个方法调用之前打印一句话:
清单 7.一个简单的日志记录拦截器
package ca.nexcel.books.interceptors;
import org.springframework.aop.MethodBeforeAdvice;
import java.lang.reflect.Method;
public class LoggingInterceptor implements MethodBeforeAdvice {
public void before(Method method, Object[] objects, Object o) throws Throwable {
System.out.println("logging before!");
}
}
这个拦截器非常简单。before()方法在拦截点中每个方法之前运行。在本例中,它打印出一句话,其实它可以做您想做的任何事。下一步就是在Spring配置文件中注册这个拦截器,如清单8所示:
清单 8.在Spring配置文件中注册拦截器
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="bookService" class="ca.nexcel.books.business.BookServiceImpl"/><bean name="/searchSubmit"
class="ca.nexcel.books.actions.SearchSubmit">
<property name="bookService">
<ref bean="bookService"/>
</property>
</bean><!-- Interceptors -->
<bean name="logger"
class="ca.nexcel.books.interceptors.LoggingInterceptor"/> |(1)<!-- AutoProxies -->
<bean name="loggingAutoProxy"
class="org.springframework.aop.framework.autoproxy.
BeanNameAutoProxyCreator"> |(2)
<property name="beanNames">
<value>/searchSubmit</valuesgt; |(3)
</property>
<property name="interceptorNames">
<list>
<value>logger</value> |(4)
</list>
</property>
</bean></beans>
您可能已经注意到了,清单8扩展了清单6中所示的应用程序以包含一个拦截器。具体细节如下:
◆在(1)处,我注册了这个拦截器。
◆在(2)处,我创建了一个bean名称自动代理,它描述如何应用拦截器。还有其他的方法定义拦截点,但是这种方法常见而简便。
◆在(3)处,我将Struts动作注册为将被拦截的bean。如果您想要拦截其他的Struts动作,则只需要在“beanNames”下面创建附加的<value>标记。
◆在(4)处,当拦截发生时,我执行了在(1)处创建的拦截器bean的名称。这里列出的所有拦截器都应用于“beanNames”。
就是这样。就像这个例子所展示的,将您的Struts动作置于Spring框架的控制之下,为处理您的Struts应用程序提供了一系列全新的选择。在本例中,使用动作委托可以轻松地利用Spring拦截器提高Struts应用程序中的日志记录能力。
- 使用Spring内置拦截器为Struts动作在每个方法调用之前打印一句话
- 使用Spring内置拦截器为Struts的Action在每个方法调用之前打印一句话
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前)
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前和调用后记录相关日志。)
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前和调用后记录相关日志。)
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前和调用后记录相关日志。)
- Struts 内置拦截器的使用 valuestack
- spring的AOP拦截器应用于Struts动作
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况)
- spring 拦截器无法拦截类内部的方法调用
- 使用 Spring 更好地处理 Struts 动作
- 使用 Spring 更好地处理 Struts 动作
- 使用 Spring 更好地处理 Struts 动作
- 使用 Spring 更好地处理 Struts 动作
- 使用 Spring 更好地处理 Struts 动作
- 年终小结(2007年2月)
- html隐藏div
- html单选框radio的简单应用
- Java程序员秘笈
- 3.141592653589793238462643383279
- 使用Spring内置拦截器为Struts动作在每个方法调用之前打印一句话
- 挪窝了!
- 面对噩耗
- Hibernate写的一个computer管理例子
- mysql 心得
- 继续前行
- 工作小结(2007年2 月)
- 直接运行jar命令
- 在C语言中实现动态分配二维数组