使用Spring AOP和MVC订购方面

使用Spring AOP和MVC订购方面,第1张

使用Spring AOP和MVC订购方面

你不需要实现Ordered接口。

在Spring AOP中,你可以轻松做事。

@Aspect@Order(1)public class AspectA{  @Before("............")   public void doit() {}}@Aspect@Order(2)public class AspectB{  @Before(".............")  public void doit() {}} 

更新

@Aspect@Order(1)public class SpringAspect {    @Pointcut("within(com.vanilla.service.MyService+)")    public void businessLogicMethods(){}     @Around("businessLogicMethods()")     public Object profile(ProceedingJoinPoint pjp) throws Throwable {  System.out.println("running Advice #1"); Object output = pjp.proceed();         return output;     }}@Aspect@Order(2)public class SpringAspect2 {    @Pointcut("within(com.vanilla.service.MyService+)")    public void businessLogicMethods(){}     @Around("businessLogicMethods()")     public Object profile(ProceedingJoinPoint pjp) throws Throwable {  System.out.println("running Advice #2"); Object output = pjp.proceed();         return output;     }}

现在,应用程序上下文配置XML:

<context:annotation-config /><aop:aspectj-autoproxy />  <bean id="springAspect"  />    <bean id="springAspect2"  />

你需要通过以下方式启用AOP代理:

<aop:aspectj-autoproxy />

否则,将不会激活任何建议。

更新2:

我只是对此问题进行研究。

@order
注解仅适用于基于Spring的代理AOP(在我的示例中使用的是)。如果你使用的是编织文件,则应使用声明优先级选项。

更新3

  1. 我在你的代码中看不到任何建议,只是方面和切入点。
  2. 如果你的Advice类是:xyzSystemArchitecture

那么你需要将其配置为

<bean id="systemArchitecture"  /> 

我在你的代码中看不到它。

  1. 执行 com.jajah.StorageManager.HomeController。(..))”的目标是什么?可以用文字写吗?
    无论如何。请在Facebook上给我留言,我将向你发送一个工作示例,该示例正是你要执行的 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4986030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存