当前位置: 首页 > 面试题库 >

如何从Spring控制器获取AOP建议中的RequestMapping请求?

元俊雅
2023-03-14
问题内容

给定某种带有请求映射的控制器

@RequestMapping(value="/some/path", method=RequestMethod.POST)

您将如何在方面类中检索方法值(RequestMethod.POST)?

我想跟踪执行POST请求的所有控制器方法。

谢谢


问题答案:

找到了解决方案。

import org.aspectj.lang.reflect.MethodSignature;
import java.lang.reflect.Method;

@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controller() {}

// In advice
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
Method method = methodSignature .getMethod();
RequestMethod[] requestMethods = method.getAnnotation(RequestMapping.class).method();

请注意要导入的类。



 类似资料:
  • 问题内容: 我想用Spring / AOP和注解实现声明式安全性。如您在下一个代码示例中看到的,我使用参数“ allowedRoles”定义了“受限注释”,用于定义允许谁执行建议的方法。 现在的问题是,在我的建议中,我无法访问已定义的注释: 上面的方法总是返回null(根本没有找到注释)。有一个简单的解决方案吗? 我阅读了有关使用AspectJ代理的内容,但我不希望使用此代理。 问题答案: 我认为

  • 问题内容: 我试图在带注释的控制器之后使用AOP进行一些处理。一切都在正常运行,但没有执行建议。 这是控制器代码: 以及在application-config中的设置 和实际的建议 甚至可以对带注释的控制器提出建议吗?我正在使用Spring 2.5。 问题答案: 我假设你想在用注释的类中执行所有方法后提出建议@Controller。 这是一个例子: 如果你想将Spring AOP与AspectJ语

  • 问题内容: Spring MVC-如何在Spring控制器中获取地图中的所有请求参数?范例网址: 我不知道attr1,att2和attr4的名称。 我希望能够做类似的事情(或类似的,不在乎,只要我可以访问Map的请求参数名-> value: 如何使用Spring MVC做到这一点? 问题答案: 尽管其他答案是正确的,但肯定不是直接使用HttpServletRequest对象的“spring方式”。

  • 我定义了这个类方面,它对服务很好(除非用户有角色管理器,否则不允许访问,但对控制器(?)没有限制 和ImportController: 当我作为userrole.manager登录时,将调用before(joinpointjp)方法,否则不是 我明白了,当我只是在浏览器中粘贴URL时,前面的方法(joinpointjp)没有被调用....

  • 我正在使用SpringWebFlux创建RouterFunction和Handler。我的处理函数有@Aspect,如下所示,用于在数据库中存储ServerRequest body和ServerResponse body。但当我试图得到一个对象时,我的请求就被绞死了。是否有实现此功能的示例代码。

  • 问题内容: 我有一个返回JSON的控制器。它采用一种形式,该形式通过spring注释进行验证。我可以从BindingResult获取FieldError列表,但是它们不包含JSP将在标记中显示的文本。如何获取错误文本以JSON形式发送回去? JSONREsponse类只是一个POJO 调用BindingResult.getAllErrors()返回FieldError对象的数组,但没有实际错误。