Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在调用任何bean/控制器之前,如何在SpringAOP/Aspectj中拦截请求?_Spring_Jakarta Ee_Spring Webflow - Fatal编程技术网

在调用任何bean/控制器之前,如何在SpringAOP/Aspectj中拦截请求?

在调用任何bean/控制器之前,如何在SpringAOP/Aspectj中拦截请求?,spring,jakarta-ee,spring-webflow,Spring,Jakarta Ee,Spring Webflow,在调用任何bean/controller方法之前,我必须记录请求参数/表单数据。 我的应用程序是用SpringWebFlow编写的 实现它的最佳方式是什么?您不需要AOP/Aspectj,您可以通过一个来实现,我认为Spring AOP可以帮助您 定义一个切入点表达式,用于选择所有控制器方法,并使用@Before建议记录参数 例如: @Before("execution(@controllers.package * *(..))") public void logArguments(JoinPo

在调用任何bean/controller方法之前,我必须记录请求参数/表单数据。 我的应用程序是用SpringWebFlow编写的


实现它的最佳方式是什么?

您不需要AOP/Aspectj,您可以通过一个

来实现,我认为Spring AOP可以帮助您

定义一个切入点表达式,用于选择所有控制器方法,并使用@Before建议记录参数

例如:

@Before("execution(@controllers.package * *(..))")
public void logArguments(JoinPoint joinPoint) throws Throwable {
    logger.debug("Entering method - Arguments : " + joinPoint.getArgs());
}

如果需要在到达控制器之前拦截每个请求,可以使用拦截器。您必须使用HandlerInterceptorAdapter扩展您的类。您可以重写它的预处理方法,以便在每个请求到达控制器之前拦截它。您将可以在此方法中访问请求和响应对象,以更改您的目标页面或url。

请详细说明您的问题。到目前为止你试过什么?否则,您的问题可能看起来像一个轮询/非建设性的问题。那么,我们可以用纯JSP/Servlet做任何事情:)Struts、SpringMVC、SpringSecurity等都是基于纯Servlet框架构建的。您可以检查Spring security的代码,了解如何使用过滤器拦截调用。AOP或Servlet过滤器,您可以根据问题选择它。这正是我的观点。如果我们想编写纯JSP/Servlet,那么我们可以做任何事情,而不需要Spring。作者在问如何使用Spring。好吧,我想说的是,如果您使用Spring,并不意味着您必须使用AOP。问题是7岁,很多事情都有改善,检查