给定 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/