郑州boy 2010-01-18 16:08 采纳率: 0%
浏览 505
已采纳

Spring 后置通知的问题

JAVA 大牛们,小弟我遇到一个很古怪的问题。不知道是怎么回事。

 

先描述下问题把。我用的struts2+spring2.5 做的项目。我在页面端有一个AJAX 调用。我的SPRING 后置通知配置在service 层。当然我的AJAX 也调用了。现在的问题是我写的后置通不执行。不知道怎么回事。我粘上部分代码希望大家能帮我解决下。

package cn.com.nuoter.playbar.businessAfter;

import java.lang.reflect.Method;
import java.lang.reflect.Type;

import org.springframework.aop.AfterReturningAdvice;

public class BusinessAfter implements AfterReturningAdvice {

    public void afterReturning(Object returnValue, Method method,
            Object[] args, Object target) throws Throwable {
        System.out.println("After.afterReturning()");
        System.out.println("return value: " + returnValue);
        System.out.println("method name: " + method.getName());
        Type[] type = method.getGenericParameterTypes();
        for (int i = 0; i < type.length; i++) {
            System.out.println(type[i].toString() + ": " + args[i]);
        }
        System.out.println("target: " + target.toString());
        // 返回值更改
        // 无效
        returnValue = new String("after");
        System.out.println("");
    }

}

下面是我的配置文件

 

<beans>
    
     <bean id="after" class="cn.com.nuoter.playbar.businessAfter.BusinessAfter"/>  
   
     <bean id="aop" class="org.springframework.aop.framework.ProxyFactoryBean">  
         <property name="proxyInterfaces" value="cn.com.nuoter.playbar.business.service.BusinessPageService" />  
         <property name="interceptorNames">  
             <list>  
                 <value>after</value>  
             </list>  
         </property>  
         <property name="target" ref="busService"> 
         </property>  
     </bean>  
    
    
</beans>

  启动的时候不包任何错误。

当我用ajax调用的时候。没有任何错误。就是上面发的java 代码不执行。不知道怎么回事。希望大家帮我看看。谢谢了。

  • 写回答

11条回答 默认 最新

  • wanghaolovezlq 2010-01-18 17:10
    关注

    所以说嘛,就是你的action配置有问题
    应该这样



    看看这里,你把busService封装成一个新的叫aop的bean,但你的busPageAction却还在用busService,应该用aop这个bean才行的

     <bean id="aop" class="org.springframework.aop.framework.ProxyFactoryBean">  
         <property name="proxyInterfaces" value="cn.com.nuoter.playbar.business.service.BusinessPageService" />  
         <property name="interceptorNames">  
             <list>  
                 <value>after</value>  
             </list>  
         </property>  
         <property name="target" ref="busService"> 
         </property>  
     </bean>  
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码