﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;strong&gt;&lt;font style="font-size:25px;"&gt;vista&lt;/font&gt;&lt;/strong&gt;-随笔分类-java基础</title><link>http://www.blogjava.net/vista/category/15785.html</link><description>&lt;font style="font-size:18px;"&gt;回顾※展望&lt;font&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;潜心技术&amp;&amp;不再搁浅
&lt;a onClick="谢谢点击" href="http://blog.csdn.net/images/blog_csdn_net/Diego1983/hehe.jpg" target="_blank"&gt;&lt;img src="http://blog.csdn.net/images/blog_csdn_net/Diego1983/hehe.jpg"  height="40" border="0" /&gt;&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 02:54:09 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 02:54:09 GMT</pubDate><ttl>60</ttl><item><title>vista精神之－－动态代理学习</title><link>http://www.blogjava.net/vista/archive/2006/11/07/79662.html</link><dc:creator>Vista</dc:creator><author>Vista</author><pubDate>Tue, 07 Nov 2006 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/vista/archive/2006/11/07/79662.html</guid><wfw:comment>http://www.blogjava.net/vista/comments/79662.html</wfw:comment><comments>http://www.blogjava.net/vista/archive/2006/11/07/79662.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vista/comments/commentRss/79662.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vista/services/trackbacks/79662.html</trackback:ping><description><![CDATA[这个知识点不多，但属于java的高级技术，相信熟悉SPRING的朋友对它一定不会陌生，今天花了点时间对java的动态代理进行了学习，感觉还可以，因为是结合spring来看的，所以练习的是面向接口的代理模式，但应该也是最常用的动态代理..，废话不多说，看例子：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> org.diego;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_40_62_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_62_Open_Text.style.display='none'; Codehighlighter1_40_62_Closed_Image.style.display='inline'; Codehighlighter1_40_62_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_40_62_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_40_62_Closed_Text.style.display='none'; Codehighlighter1_40_62_Open_Image.style.display='inline'; Codehighlighter1_40_62_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">interface</span><span style="COLOR: #000000"> Ip </span><span id="Codehighlighter1_40_62_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_40_62_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> say();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />实现类：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> org.diego;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_48_104_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_104_Open_Text.style.display='none'; Codehighlighter1_48_104_Closed_Image.style.display='inline'; Codehighlighter1_48_104_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_48_104_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_104_Closed_Text.style.display='none'; Codehighlighter1_48_104_Open_Image.style.display='inline'; Codehighlighter1_48_104_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> P </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> Ip</span><span id="Codehighlighter1_48_104_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_48_104_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_68_102_Open_Image" onclick="this.style.display='none'; Codehighlighter1_68_102_Open_Text.style.display='none'; Codehighlighter1_68_102_Closed_Image.style.display='inline'; Codehighlighter1_68_102_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_68_102_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_68_102_Closed_Text.style.display='none'; Codehighlighter1_68_102_Open_Image.style.display='inline'; Codehighlighter1_68_102_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> say()</span><span id="Codehighlighter1_68_102_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_68_102_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />代理类：<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> org.diego;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.lang.reflect.InvocationHandler;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.lang.reflect.Method;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_146_578_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_578_Open_Text.style.display='none'; Codehighlighter1_146_578_Closed_Image.style.display='inline'; Codehighlighter1_146_578_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_146_578_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_146_578_Closed_Text.style.display='none'; Codehighlighter1_146_578_Open_Image.style.display='inline'; Codehighlighter1_146_578_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> TraceHandler </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> InvocationHandler </span><span id="Codehighlighter1_146_578_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_146_578_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> Object target;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_204_221_Open_Image" onclick="this.style.display='none'; Codehighlighter1_204_221_Open_Text.style.display='none'; Codehighlighter1_204_221_Closed_Image.style.display='inline'; Codehighlighter1_204_221_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_204_221_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_204_221_Closed_Text.style.display='none'; Codehighlighter1_204_221_Open_Image.style.display='inline'; Codehighlighter1_204_221_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> TraceHandler(Object t) </span><span id="Codehighlighter1_204_221_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_204_221_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        target </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> t;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_307_576_Open_Image" onclick="this.style.display='none'; Codehighlighter1_307_576_Open_Text.style.display='none'; Codehighlighter1_307_576_Closed_Image.style.display='inline'; Codehighlighter1_307_576_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_307_576_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_307_576_Closed_Text.style.display='none'; Codehighlighter1_307_576_Open_Image.style.display='inline'; Codehighlighter1_307_576_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Object invoke(Object proxy, Method method, Object[] args) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Throwable </span><span id="Codehighlighter1_307_576_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_307_576_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> TODO Auto-generated method stub</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_388_555_Open_Image" onclick="this.style.display='none'; Codehighlighter1_388_555_Open_Text.style.display='none'; Codehighlighter1_388_555_Closed_Image.style.display='inline'; Codehighlighter1_388_555_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_388_555_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_388_555_Closed_Text.style.display='none'; Codehighlighter1_388_555_Open_Image.style.display='inline'; Codehighlighter1_388_555_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (method.getName().startsWith(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">say</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)) </span><span id="Codehighlighter1_388_555_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_388_555_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello,before method<img src="http://www.blogjava.net/images/dot.gif" /></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            Object result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> method.invoke(target, args);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">World,after method<img src="http://www.blogjava.net/images/dot.gif" /></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> result;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><br /><br />测试类：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_0_77_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_77_Open_Text.style.display='none'; Codehighlighter1_0_77_Closed_Image.style.display='inline'; Codehighlighter1_0_77_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_77_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_77_Closed_Text.style.display='none'; Codehighlighter1_0_77_Open_Image.style.display='inline'; Codehighlighter1_0_77_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_77_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_0_77_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * @author diego.liu<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * @contact vista.lbw@gmail.com<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * @date 2006-11-7<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> org.diego;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.lang.reflect.InvocationHandler;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.lang.reflect.Proxy;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_199_459_Open_Image" onclick="this.style.display='none'; Codehighlighter1_199_459_Open_Text.style.display='none'; Codehighlighter1_199_459_Closed_Image.style.display='inline'; Codehighlighter1_199_459_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_199_459_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_199_459_Closed_Text.style.display='none'; Codehighlighter1_199_459_Open_Image.style.display='inline'; Codehighlighter1_199_459_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> ProxyTest </span><span id="Codehighlighter1_199_459_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_199_459_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_242_456_Open_Image" onclick="this.style.display='none'; Codehighlighter1_242_456_Open_Text.style.display='none'; Codehighlighter1_242_456_Closed_Image.style.display='inline'; Codehighlighter1_242_456_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_242_456_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_242_456_Closed_Text.style.display='none'; Codehighlighter1_242_456_Open_Image.style.display='inline'; Codehighlighter1_242_456_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span id="Codehighlighter1_242_456_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_242_456_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        P test </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> P();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        InvocationHandler handler </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> TraceHandler(test);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Ip proxy </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Ip) Proxy.newProxyInstance(test.getClass().getClassLoader(), test.getClass().getInterfaces(),<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                handler);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        proxy.say();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />已经测试可以运行，欢迎拍砖。。。<img src ="http://www.blogjava.net/vista/aggbug/79662.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vista/" target="_blank">Vista</a> 2006-11-07 18:14 <a href="http://www.blogjava.net/vista/archive/2006/11/07/79662.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vista精神之－dom4j读写xml文件</title><link>http://www.blogjava.net/vista/archive/2006/10/31/78327.html</link><dc:creator>Vista</dc:creator><author>Vista</author><pubDate>Tue, 31 Oct 2006 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/vista/archive/2006/10/31/78327.html</guid><wfw:comment>http://www.blogjava.net/vista/comments/78327.html</wfw:comment><comments>http://www.blogjava.net/vista/archive/2006/10/31/78327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vista/comments/commentRss/78327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vista/services/trackbacks/78327.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 虽然考虑到读取文件会影响性能，最终没有采用这种方式，而是取数据库，但总结出来以后说不定用的着，呵呵.1，下载dom4j2，写xml的代码public class AddPictureAction extends BaseAction {    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServl...&nbsp;&nbsp;<a href='http://www.blogjava.net/vista/archive/2006/10/31/78327.html'>阅读全文</a><img src ="http://www.blogjava.net/vista/aggbug/78327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vista/" target="_blank">Vista</a> 2006-10-31 17:10 <a href="http://www.blogjava.net/vista/archive/2006/10/31/78327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vista 精神之 － 面向对象篇</title><link>http://www.blogjava.net/vista/archive/2006/09/29/72823.html</link><dc:creator>Vista</dc:creator><author>Vista</author><pubDate>Fri, 29 Sep 2006 06:53:00 GMT</pubDate><guid>http://www.blogjava.net/vista/archive/2006/09/29/72823.html</guid><wfw:comment>http://www.blogjava.net/vista/comments/72823.html</wfw:comment><comments>http://www.blogjava.net/vista/archive/2006/09/29/72823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vista/comments/commentRss/72823.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vista/services/trackbacks/72823.html</trackback:ping><description><![CDATA[一，继承过程中类的构造函数，类方法，实例方法的一些问题，下面的帖子总结的很好<br /><img height="19" src="http://www.blogjava.net/Emoticons/thumbs_up.gif" width="19" border="0" />   <a href="/ChenGen/archive/2006/09/29/72773.html">http://www.blogjava.net/ChenGen/archive/2006/09/29/72773.html</a><br />二，检查方法参数的一些忠告<br /><img height="19" src="http://www.blogjava.net/Emoticons/emembarrassed.gif" width="19" border="0" />   <a href="/yeyiliang/archive/2006/09/29/72785.html">http://www.blogjava.net/yeyiliang/archive/2006/09/29/72785.html</a><br /><img src ="http://www.blogjava.net/vista/aggbug/72823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vista/" target="_blank">Vista</a> 2006-09-29 14:53 <a href="http://www.blogjava.net/vista/archive/2006/09/29/72823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>