java - 如何在 Spring Controller 的每个方法之前使用 AOP 执行一些代码并拥有 Method 对象

标签 java spring-mvc aop

给定 Spring Controller 中的一个方法,我想执行一个“before”处理程序。我尝试了一些 AspectJ 代码来做到这一点,但我无法解决。我想要的是获取目标方法对象,以便我可以处理它的注释。是否可以?怎么办?

最佳答案

编写一个实现 'MethodBeforeAdvice' 接口(interface)的类,并覆盖该类中的 before() 方法,您可以在其中实现您想要的逻辑。

并且还将您的自定义类指定为 org.springframework.aop.support.RegexpMethodPointcutAdvisor 的属性在 Spring XML 文件中。

 ex: 
    <bean id="methodAuthzAdvice" class="com.src.customClassMethodBeforeAdvice"/>
    <bean id="methodAuthzAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
         <ref local="methodAuthzAdvice"/>
            <property name="advice">
                <ref local="methodAuthzAdvice"/>
            </property>     
                     <property name="pattern">
                <value>.*</value>
            </property>
        </bean>

使用methodAuthzAdvice id 作为 xml 文件中处理程序类的拦截器属性。

关于java - 如何在 Spring Controller 的每个方法之前使用 AOP 执行一些代码并拥有 Method 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912088/

相关文章:

java - android: 帮助 webview 无法从 listview fragment 打开

java - 当我们在 Spring MVC 中传递一个数组来产生条件时,响应中设置了什么内容类型(@ResponseBody)

spring - 在 Grails 中使用 AOP 不适用于服务

java - 具有实例变量的通用内部类,该实例变量是另一个通用内部类的对象

java - 如何通过 HTTP 代理连接 Socket 服务器

java - JSF 应用程序结构

java - Spring 3.1.1.RELEASE 数据绑定(bind) : Error when validating submitted form

json - 如何使用 Spring Hateoas 和 HAL 向链接添加附加属性?

带有注解的 Java 面向方面编程

java - Spring AOP 和 AspectJ 加载时编织 : Around advice will be invoked twice for private methods