ITPUB??ì3

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: SpringAOP问题
离线 javalean
初级会员



精华贴数 0
个人空间 0
技术积分 78 (20046)
社区积分 3 (21781)
注册日期 2006-7-10
论坛徽章:0
      
      

发表于 2007-11-28 17:00 
SpringAOP问题

最近想写一个简单的SpringAop程序,可是它怎么也不能运行,请各位高手给小弟指点一下。
下面是target的代码:
package test;

import java.util.ArrayList;

public class JChat implements meassageManage
{
    public static Bayeux bayeux;
    public static Client client;
    public static final String chat = "/XXXX/";
    public static Map List> roomMap = new HashMap List>();
    public static void setBayeux(Bayeux bayeux)
    {
        JChat.bayeux = bayeux;
        JChat.client =bayeux.newClient("XXXX", null);
    }
    public JChat()
    {
    }
    public void join(String room, String userName) throws Exception
    {
        System.out.println("调用开始");
        Listmembers = roomMap.get(room);
        if(members ==null)
        {
            members = new ArrayList();
            roomMap.put(room, members);
        }
        members.add(userName);
        Map Object> msg = new HashMap Object>();
        msg.put("join", "join");
        msg.put("roomId", room);
        msg.put("userId", userName);
        bayeux.getChannel(chat + room, true);
        bayeux.publish(client, chat + room, msg, "" + msg.hashCode());

        System.out.println("调用结束");
    }
                  .
                  .
                  .
    }
interceptorNames的代码是这样写的:
package test.advice;

import java.lang.reflect.Method;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.MethodBeforeAdvice;

public class MyMethodBeforeAdvice implements MethodBeforeAdvice
{
        /**
         *
         */
        private static final long serialVersionUID = 2146067923623413193L;
        Log log = LogFactory.getLog(this.getClass());
        public MyMethodBeforeAdvice()
        {
                super();
        }
        public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable
        {
                // TODO Auto-generated method stub
                StringBuilder sb = new StringBuilder();
                if(arg1 == null)
                {
                        sb = new StringBuilder("无参数!");
                }
                else
                {
                        for(int i =0;i < arg1.length;i++)
                        {
                                if(i != arg1.length-1)
                                {
                                        sb.append(arg1 + ",");
                                }
                                else
                                {
                                        sb.append(arg1);
                                }
                        }
                }
                log.info("Before类名:" + arg2.getClass().getName() + " 方法名:" + arg0.getName() + " 参数:" + sb.toString());
        }
}

proxyInterfaces的代码:
package test.iFace;

public interface meassageManage
{
        public  void join(String room, String userName) throws Exception;
}
Spring的配置文件是这样写的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
        <bean id="chat" class="test.JChat"/>
        <bean id="advice" class="test.advice.sendMessageAdvice"/>
        <bean id="befor" class="test.advice.MyMethodBeforeAdvice"/>
        <!-- bean id="pushdata" class="test.DataPushServer"/-->
        <bean id="joinProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
                <property name="proxyInterfaces">
                        <list>
                                <value>test.iFace.meassageManage</value>
                        </list>
                </property>
                <property name="interceptorNames">
                         <list>
                                <value>befor</value>
                        </list>
                </property>
                <property name="target">
                        <ref bean="chat"/>
                </property>
        </bean>
</beans>
附加说明:
我的Jion是通过DWR调的,当调完后没有输出Advice中的语句,也就是AOP没有起作用,这是怎么回事呀。
我的Spring是2.0.5版的。

[ 本帖最后由 javalean 于 2007-11-28 17:03 编辑 ]


只看该作者    顶部
离线 javalod
天下江湖


精华贴数 0
个人空间 0
技术积分 587 (3266)
社区积分 6 (14899)
注册日期 2008-6-4
论坛徽章:5
行业板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星 
      

发表于 2008-6-17 17:59 
顶个

*** 作者被禁止或删除 内容自动屏蔽 ***
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问