Spring 动态代理问题!

<beanid="logInterceptor"class="com.hxy.aop.LogInterceptor"></bean><aop:config><aop:po... <bean id="logInterceptor" class="com.hxy.aop.LogInterceptor"></bean>
<aop:config>
<aop:pointcut expression="execution(public * com.hxy.dao..*.*(..))" id="servicePointcut"/>
<aop:aspect id="logAspect" ref="logInterceptor">
<aop:before method="before" pointcut-ref="servicePointcut"/>
</aop:aspect>
</aop:config>
我在我的xml文件中配置了这样的配置,在别人的机器上运行的时候,产生的对象是代理对象。但是在我的电脑上为什么就不是代理对象?我用的是spring3.0,另外一台电脑上用的是spring2.5.6。请高手指教!谢了!
展开
 我来答
010uvbu506
2011-08-27 · TA获得超过296个赞
知道答主
回答量:552
采纳率:0%
帮助的人:386万
展开全部
首先,这是动态代理,但是和spring里面的AOP没有直接关系.
你还是做的是java本身的"动态代理".

因为你做的是动态代理,所以你的类必须实现InvocationHandler接口.
自然,你的实现类"Daili"就必须实现invoke()方法,这个方法是在你调用被代理对象的时候自动执行的,所以不需要你显式调用.

实际过程是你要执行被代理对象里面的某个method,这是你的目的(卖电脑),这时你要通过代理对象来做,因为代理对象可以做一些其他的事情(比如:送橘子).

"卖电脑"和"送橘子"是一次营销活动的组成部分,送完橘子你必须还要给人家电脑,这个invoke()方法就是在你送橘子的前、中、后去卖电脑,这个才是主要目的.

invoke()方法的参数列表是:Object proxy, Method method, Object[] args
指的是:被代理对象, 要执行的被代理对象中的方法, 要执行的方法中的参数列表

具体到你的例子:卖电脑的业务类, 卖电脑的那个方法, 卖电脑需要的一些数据

返回的是'卖电脑的那个方法'返回的数据,因为在编程时不知道运行时会去代理什么,所以参数列表是个对象数组,返回的是个对象.
追问
但是不是说,就算不实现那个接口也可以用spring实现动态 代理吗?
我看的是马士兵的教程,我看他在他的电脑上运行的挺正常的啊。而且出来的对象也是代理对象,它的那个类并没有实现你所说的接口。
Storm代理
2023-05-08 广告
StormProxies全球大数据IP资源服务商,超7000万住宅IP覆盖全球200+国家与地区,城市级定位,支持HTTP/HTTPS/SOCKS5协议,IP+端口提取形式,不限带宽,纯净高匿,网络集成更快捷,注册即送1G流量!... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式