﻿<?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-技术交流</title><link>http://www.blogjava.net/pitey/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:52:26 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:52:26 GMT</pubDate><ttl>60</ttl><item><title>Java静态代理和动态代理</title><link>http://www.blogjava.net/pitey/archive/2009/02/18/255279.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Wed, 18 Feb 2009 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2009/02/18/255279.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/255279.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2009/02/18/255279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/255279.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/255279.html</trackback:ping><description><![CDATA[网上和bolg上相关例子不少，今天自己动手写了个例子作为学习笔记。<br />
首先java代理分为静态代理和动态代理，动态代理中java提供的动态代理需要动态代理一个inteface,如果没有inteface则需要使用实现<span class="Apple-style-span" style="word-spacing: 0px; font: 14px/21px palatino; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">cglib</span>提供的接口。<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_49_430_Open_Image" onclick="this.style.display='none'; Codehighlighter1_49_430_Open_Text.style.display='none'; Codehighlighter1_49_430_Closed_Image.style.display='inline'; Codehighlighter1_49_430_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_49_430_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_49_430_Closed_Text.style.display='none'; Codehighlighter1_49_430_Open_Image.style.display='inline'; Codehighlighter1_49_430_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MyProxy&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;InvocationHandler</span><span id="Codehighlighter1_49_430_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_49_430_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Object&nbsp;proxyObj&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_133_266_Open_Image" onclick="this.style.display='none'; Codehighlighter1_133_266_Open_Text.style.display='none'; Codehighlighter1_133_266_Closed_Image.style.display='inline'; Codehighlighter1_133_266_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_133_266_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_133_266_Closed_Text.style.display='none'; Codehighlighter1_133_266_Open_Image.style.display='inline'; Codehighlighter1_133_266_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Object&nbsp;getInstance(Object&nbsp;obj)</span><span id="Codehighlighter1_133_266_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_133_266_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxyObj</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;obj;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Proxy.newProxyInstance(obj.getClass().getClassLoader(),&nbsp;obj.getClass().getInterfaces(),&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MyProxy());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_353_428_Open_Image" onclick="this.style.display='none'; Codehighlighter1_353_428_Open_Text.style.display='none'; Codehighlighter1_353_428_Closed_Image.style.display='inline'; Codehighlighter1_353_428_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_353_428_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_353_428_Closed_Text.style.display='none'; Codehighlighter1_353_428_Open_Image.style.display='inline'; Codehighlighter1_353_428_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Object&nbsp;invoke(Object&nbsp;proxy,&nbsp;Method&nbsp;method,&nbsp;Object[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Throwable&nbsp;</span><span id="Codehighlighter1_353_428_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_353_428_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">使用代理..</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;method.invoke(<span style="color: #ff0000">proxyObj</span>,&nbsp;args);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></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 id="Codehighlighter1_39_231_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_231_Open_Text.style.display='none'; Codehighlighter1_39_231_Closed_Image.style.display='inline'; Codehighlighter1_39_231_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_39_231_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_231_Closed_Text.style.display='none'; Codehighlighter1_39_231_Open_Image.style.display='inline'; Codehighlighter1_39_231_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_39_231_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_39_231_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILeaveService&nbsp;service&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(ILeaveService)MyProxy.getInstance(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LeaveServiceImpl());<br />
<img id="Codehighlighter1_133_169_Open_Image" onclick="this.style.display='none'; Codehighlighter1_133_169_Open_Text.style.display='none'; Codehighlighter1_133_169_Closed_Image.style.display='inline'; Codehighlighter1_133_169_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_133_169_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_133_169_Closed_Text.style.display='none'; Codehighlighter1_133_169_Open_Image.style.display='inline'; Codehighlighter1_133_169_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_133_169_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_133_169_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;service.listBizObjByHql(</span><span style="color: #000000">""</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_200_228_Open_Image" onclick="this.style.display='none'; Codehighlighter1_200_228_Open_Text.style.display='none'; Codehighlighter1_200_228_Closed_Image.style.display='inline'; Codehighlighter1_200_228_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_200_228_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_200_228_Closed_Text.style.display='none'; Codehighlighter1_200_228_Open_Image.style.display='inline'; Codehighlighter1_200_228_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(ServiceException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_200_228_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_200_228_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">使用代理..<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />query&nbsp;Hql..</span></div>
使用Cglib<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_48_256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_256_Open_Text.style.display='none'; Codehighlighter1_48_256_Closed_Image.style.display='inline'; Codehighlighter1_48_256_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_48_256_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_48_256_Closed_Text.style.display='none'; Codehighlighter1_48_256_Open_Image.style.display='inline'; Codehighlighter1_48_256_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test2&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;MethodInterceptor&nbsp;</span><span id="Codehighlighter1_48_256_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_48_256_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_164_252_Open_Image" onclick="this.style.display='none'; Codehighlighter1_164_252_Open_Text.style.display='none'; Codehighlighter1_164_252_Closed_Image.style.display='inline'; Codehighlighter1_164_252_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_164_252_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_164_252_Closed_Text.style.display='none'; Codehighlighter1_164_252_Open_Image.style.display='inline'; Codehighlighter1_164_252_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Object&nbsp;intercept(Object&nbsp;obj,&nbsp;Method&nbsp;method,&nbsp;Object[]&nbsp;args,&nbsp;MethodProxy&nbsp;methodProxy)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Throwable&nbsp;</span><span id="Codehighlighter1_164_252_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_164_252_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">cglib&nbsp;proxy<img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;methodProxy.<span style="color: #ff0000">invokeSuper</span>(obj,&nbsp;args);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></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 id="Codehighlighter1_39_226_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_226_Open_Text.style.display='none'; Codehighlighter1_39_226_Closed_Image.style.display='inline'; Codehighlighter1_39_226_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_39_226_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_226_Closed_Text.style.display='none'; Codehighlighter1_39_226_Open_Image.style.display='inline'; Codehighlighter1_39_226_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_39_226_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_39_226_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enhancer&nbsp;enhancer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;&nbsp;Enhancer();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">&nbsp;enhancer.setSuperclass(Test3.class);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enhancer.setCallback(new&nbsp;Test2());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test3&nbsp;test&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Test3)enhancer.create();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test.prinInfo(</span><span style="color: #000000">"</span><span style="color: #000000">p<img alt="" src="http://www.blogjava.net/Images/dot.gif" />.</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
输出<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">cglib&nbsp;proxy<img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />p<img alt="" src="http://www.blogjava.net/Images/dot.gif" />.<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
过滤器<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_44_220_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_220_Open_Text.style.display='none'; Codehighlighter1_44_220_Closed_Image.style.display='inline'; Codehighlighter1_44_220_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_44_220_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_44_220_Closed_Text.style.display='none'; Codehighlighter1_44_220_Open_Image.style.display='inline'; Codehighlighter1_44_220_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test4&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;CallbackFilter</span><span id="Codehighlighter1_44_220_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_44_220_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_81_216_Open_Image" onclick="this.style.display='none'; Codehighlighter1_81_216_Open_Text.style.display='none'; Codehighlighter1_81_216_Closed_Image.style.display='inline'; Codehighlighter1_81_216_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_81_216_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_81_216_Closed_Text.style.display='none'; Codehighlighter1_81_216_Open_Image.style.display='inline'; Codehighlighter1_81_216_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;accept(Method&nbsp;method)&nbsp;</span><span id="Codehighlighter1_81_216_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_81_216_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_123_140_Open_Image" onclick="this.style.display='none'; Codehighlighter1_123_140_Open_Text.style.display='none'; Codehighlighter1_123_140_Closed_Image.style.display='inline'; Codehighlighter1_123_140_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_123_140_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_123_140_Closed_Text.style.display='none'; Codehighlighter1_123_140_Open_Image.style.display='inline'; Codehighlighter1_123_140_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(method.getName().equals(</span><span style="color: #000000">"</span><span style="color: #000000">method1</span><span style="color: #000000">"</span><span style="color: #000000">))</span><span id="Codehighlighter1_123_140_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_123_140_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_184_201_Open_Image" onclick="this.style.display='none'; Codehighlighter1_184_201_Open_Text.style.display='none'; Codehighlighter1_184_201_Closed_Image.style.display='inline'; Codehighlighter1_184_201_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_184_201_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_184_201_Closed_Text.style.display='none'; Codehighlighter1_184_201_Open_Image.style.display='inline'; Codehighlighter1_184_201_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(method.getName().equals(</span><span style="color: #000000">"</span><span style="color: #000000">method2</span><span style="color: #000000">"</span><span style="color: #000000">))</span><span id="Codehighlighter1_184_201_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_184_201_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
只有返回0的才执行（<span class="Apple-style-span" style="word-spacing: 0px; font: 14px/21px palatino; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">cglib中的NoOp.INSTANCE就是一个空的拦截器</span>）<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_40_350_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_350_Open_Text.style.display='none'; Codehighlighter1_40_350_Closed_Image.style.display='inline'; Codehighlighter1_40_350_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_40_350_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_40_350_Closed_Text.style.display='none'; Codehighlighter1_40_350_Open_Image.style.display='inline'; Codehighlighter1_40_350_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_40_350_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_40_350_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_84_110_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_110_Open_Text.style.display='none'; Codehighlighter1_84_110_Closed_Image.style.display='inline'; Codehighlighter1_84_110_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_84_110_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_110_Closed_Text.style.display='none'; Codehighlighter1_84_110_Open_Image.style.display='inline'; Codehighlighter1_84_110_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback&nbsp;[]&nbsp;callbacks&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Callback[]</span><span id="Codehighlighter1_84_110_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_84_110_Open_Text"><span style="color: #000000">{</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Test2(),NoOp.INSTANCE}</span></span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enhancer&nbsp;enhancer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Enhancer();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enhancer.setSuperclass(Test3.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enhancer.setCallbacks(callbacks);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enhancer.setCallbackFilter(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Test4());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test3&nbsp;test3&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Test3)enhancer.create();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test3.method1();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test3.method2();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" 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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">method1<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />cglib&nbsp;proxy<img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />method2</span></div>
<img src ="http://www.blogjava.net/pitey/aggbug/255279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2009-02-18 16:52 <a href="http://www.blogjava.net/pitey/archive/2009/02/18/255279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转:Message Driven POJO</title><link>http://www.blogjava.net/pitey/archive/2009/02/11/254198.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Wed, 11 Feb 2009 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2009/02/11/254198.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/254198.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2009/02/11/254198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/254198.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/254198.html</trackback:ping><description><![CDATA[作者：<a href="http://calvin.blogjava.net/"><font color="#366900">江南白衣</font></a>&#160;<br />
&#160;&#160;<br />
&#160;&#160;&#160;
一直希望那些J字头的协议能有几个提前告老还乡的，好减轻一下我们的负担，特别是这WebService满天飞的时代。但似乎还有很久都轮不到JMS的消失：<br />
<br />
&#160;&#160;&#160;<strong>&#160;1.因为<br />
</strong>&#160;&#160;&#160;&#160;1.它是《Effective
Enterprise Java》的一个实践。&#160;<br />
&#160;&#160;&#160; 可以把不影响用户执行结果又比较耗时的任务（比如发邮件通知管理员）异步的扔给JMS
服务端去做，而尽快的把屏幕返还给用户。<br />
&#160;&#160;&#160;&#160;而且服务端能够多线程排队响应--高并发的请求。<br />
<br />
&#160;&#160;&#160; 2.
可以在Java世界里达到最高的解耦。<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;对比WebService，JMS的客户端与服务端无需直连，甚至无需知晓对方是谁、在哪里、有多少人，只要对流过的信息作响应就行了。对牵一发动全身的企业应用来说很轻省。<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160;&#160;&#160;<strong>2.
但是<br />
</strong>&#160;&#160;&#160;&#160; 1. Message
Bean带着EJB系的荣光，步骤比较繁杂，你需要实现MessageDrivenBean、MessageListener接口，还需要设置EJB的配置信息，然后是deploy....
<p>&#160;&#160;&#160;&#160; 2. Spring 1.x 提供的JMS Template简化了JMS
Client端的编程，但并没有涉及到服务端的改造。<br />
<br />
&#160;&#160;&#160;&#160;<strong> 3.&#160;所以，SpringSide的Message Driven
POJO方案</strong><br />
<br />
&#160;&#160;&#160;&#160;&#160; Spring JMS Template + ActiveMQ + Jencks</p>
<p>1. 它是Lightweight的，基本上只是普通POJO，不用搞太多东西。</p>
<p>2. 它是Spring Base的，可以使用Spring的各种特性如IOC、AOP。</p>
<p>3. 它是Effective的，基于Jencks的JCA Container实现&#160;pool connection，control transactions
and manage security。</p>
<p>4. 但它是withdout EJB
Container的。<br />
<br />
其实它还不是100%&#160;POJO，除非再用上Lingo，但我已不想走得太远。<br />
<br />
<strong>4.黄金版配置<br />
</strong>&#160;&#160;&#160;&#160;&#160;
如果你想找一个ActiveMQ 3.2 Stable版+Spring的100%可行的配置文件，估计只能到<a href="http://www.springside.org.cn/" target="_blank">SpringSide项目</a>里看了。网上的文章，不是已过时，就是不切题。<br />
<br />
&#160;&#160;&#160;&#160;&#160;推荐中英两份最接近的文档：<br />
&#160;&#160;&#160;&#160;
<a href="http://www.jetmaven.net/documents/j_spring_messageBean.php">捷特慈朋(IDEA中国):
Spring和Message Bean的整合</a><br />
&#160;&#160;&#160;&#160; <a href="http://y%3Dmessage_driven_pojos/">Spring loaded:&#160; Message-Driven
POJOs&#160;</a><br />
<br />
&#160;&#160;&#160;&#160;&#160;不过它们都有个outdate的地方--ActiveMQ3.2开始不再自带JCA
Cotainer了，而是将其与Gernimo 合作而成了Jencks，需另外安装。<br />
<br />
<strong>&#160;5.<a href="http://www.springside.org.cn/" target="_blank">SpringSide</a>旅游指南</strong><br />
<br />
&#160;&#160;&#160;&#160;&#160; pom.xml里的JMS部分
--所需的依赖包。<br />
&#160;&#160;&#160;&#160;&#160; applicationContext-jms.xml --黄金版配置文件。<br />
&#160;&#160;&#160;&#160;&#160; activemq.xml&#160;
--AcitveMQ Broker配置文件。<br />
&#160;&#160;&#160;&#160;&#160; OrderPlaceMDP.java --Message Driven
Pojo。<br />
&#160;&#160;&#160;&#160;&#160;&#160;JmsTest.java&#160;--单元测试用例。<br />
&#160;&#160;&#160;&#160;&#160;&#160;OrderManger.java的NodifyOrder()函数
--实际应用的地方。&#160;<br />
<br />
　POJO太简单，唯一麻烦的配置文件已注释，这里也就无话了。</p>
<img src ="http://www.blogjava.net/pitey/aggbug/254198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2009-02-11 09:52 <a href="http://www.blogjava.net/pitey/archive/2009/02/11/254198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]一次Java垃圾收集调优实战</title><link>http://www.blogjava.net/pitey/archive/2009/02/11/254176.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Wed, 11 Feb 2009 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2009/02/11/254176.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/254176.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2009/02/11/254176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/254176.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/254176.html</trackback:ping><description><![CDATA[&#160;&#160;&#160;&#160; 摘要: GC调优是个很实验很伽利略的活儿，最后服务的处理速度从1180 tps 上升到1380 tps，调整两个参数提升17%的性能还是笔很划算的买卖.....&#160;&#160;<a href="http://www.blogjava.net/calvin/archive/2008/07/09/213535.html">阅读全文</a><img src="http://www.blogjava.net/calvin/aggbug/213535.html" width="1" height="1" alt="" /><br />
<br />
<div align="right"><a style="text-decoration:none;" href="http://www.blogjava.net/calvin/" target="_blank">江南白衣</a> 2008-07-09 10:13 <a href="http://www.blogjava.net/calvin/archive/2008/07/09/213535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>
<br />
文章来源:<a href="http://www.blogjava.net/calvin/archive/2008/07/09/213535.html">http://www.blogjava.net/calvin/archive/2008/07/09/213535.html</a>
<img src ="http://www.blogjava.net/pitey/aggbug/254176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2009-02-11 09:17 <a href="http://www.blogjava.net/pitey/archive/2009/02/11/254176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring事物拦截器学习笔记</title><link>http://www.blogjava.net/pitey/archive/2009/02/10/254143.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Tue, 10 Feb 2009 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2009/02/10/254143.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/254143.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2009/02/10/254143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/254143.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/254143.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">Spring事物拦截器，按照通知方式分为[前置通知（Before advice）,返回后通知（After returning advice）<br />
,抛出后通知（After throwing advice）,后通知（After (finally) advice）,环绕通知（Around Advice）]<br />
配置方式分@AspectJ,XML，网上比较多的是Spring1.1或xml+@AspectJ方式配置，例子使用XML方式配置</span></span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">1.定义切面类接口，切面类实现这个接口。声明（如果被代理的目标对象实现了至少一个接口，则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口，则创建一个CGLIB代理）<br />
</span></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_29_94_Open_Image" onclick="this.style.display='none'; Codehighlighter1_29_94_Open_Text.style.display='none'; Codehighlighter1_29_94_Closed_Image.style.display='inline'; Codehighlighter1_29_94_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_29_94_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_29_94_Closed_Text.style.display='none'; Codehighlighter1_29_94_Open_Image.style.display='inline'; Codehighlighter1_29_94_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&#160;ITestAdvice&#160;</span><span id="Codehighlighter1_29_94_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" alt="" /></span><span id="Codehighlighter1_29_94_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;doPlay();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;doStop(Object&#160;reval);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img id="Codehighlighter1_136_295_Open_Image" onclick="this.style.display='none'; Codehighlighter1_136_295_Open_Text.style.display='none'; Codehighlighter1_136_295_Closed_Image.style.display='inline'; Codehighlighter1_136_295_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_136_295_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_136_295_Closed_Text.style.display='none'; Codehighlighter1_136_295_Open_Image.style.display='inline'; Codehighlighter1_136_295_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">&#160;Tv&#160;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&#160;ITestAdvice</span><span id="Codehighlighter1_136_295_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" alt="" /></span><span id="Codehighlighter1_136_295_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img id="Codehighlighter1_176_230_Open_Image" onclick="this.style.display='none'; Codehighlighter1_176_230_Open_Text.style.display='none'; Codehighlighter1_176_230_Closed_Image.style.display='inline'; Codehighlighter1_176_230_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_176_230_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_176_230_Closed_Text.style.display='none'; Codehighlighter1_176_230_Open_Image.style.display='inline'; Codehighlighter1_176_230_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;doStop(Object&#160;reval)&#160;</span><span id="Codehighlighter1_176_230_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" alt="" /></span><span id="Codehighlighter1_176_230_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;System.out.println(reval.toString()&#160;</span><span style="color: #000000">+</span><span style="color: #000000">&#160;</span><span style="color: #000000">"</span><span style="color: #000000">关闭电视机!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img id="Codehighlighter1_256_291_Open_Image" onclick="this.style.display='none'; Codehighlighter1_256_291_Open_Text.style.display='none'; Codehighlighter1_256_291_Closed_Image.style.display='inline'; Codehighlighter1_256_291_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_256_291_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_256_291_Closed_Text.style.display='none'; Codehighlighter1_256_291_Open_Image.style.display='inline'; Codehighlighter1_256_291_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;doPlay()&#160;</span><span id="Codehighlighter1_256_291_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" alt="" /></span><span id="Codehighlighter1_256_291_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">打开电视机!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">&#160;</span></span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">2.定义前置通知拦截处理类</span></span></span></span></p>
<p>&#160;</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_37_119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_37_119_Open_Text.style.display='none'; Codehighlighter1_37_119_Closed_Image.style.display='inline'; Codehighlighter1_37_119_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_37_119_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_37_119_Closed_Text.style.display='none'; Codehighlighter1_37_119_Open_Image.style.display='inline'; Codehighlighter1_37_119_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">&#160;TestMethodBeforeAdvice&#160;&#160;</span><span id="Codehighlighter1_37_119_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" alt="" /></span><span id="Codehighlighter1_37_119_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img id="Codehighlighter1_76_115_Open_Image" onclick="this.style.display='none'; Codehighlighter1_76_115_Open_Text.style.display='none'; Codehighlighter1_76_115_Closed_Image.style.display='inline'; Codehighlighter1_76_115_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_76_115_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_76_115_Closed_Text.style.display='none'; Codehighlighter1_76_115_Open_Image.style.display='inline'; Codehighlighter1_76_115_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;before(JoinPoint&#160;jpt)&#160;</span><span id="Codehighlighter1_76_115_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" alt="" /></span><span id="Codehighlighter1_76_115_Open_Text"><span style="color: #000000">{&#160;&#160;//参数JoinPoint为默认参数<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">正在打开电视..</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
<br />
<span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">3.定义拦截器配置文件</span></span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">bean&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">tv</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.pitey.demo.Tv</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">bean&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">beforeAdvice</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.pitey.demo.TestMethodBeforeAdvice</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:aspectj</span><span style="color: #000000">-</span><span style="color: #000000">autoproxy&#160;proxy</span><span style="color: #000000">-</span><span style="color: #000000">target</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:config</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&#160;定义切入点&#160;</span><span style="color: #000000">--></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:pointcut&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">methodAdvice</span><span style="color: #000000">"</span><span style="color: #000000">&#160;expression</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">execution(*&#160;com.pitey.demo.*.*(..))</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&#160;定义切面&#160;</span><span style="color: #000000">--></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:aspect&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">beforeAdviceAspect</span><span style="color: #000000">"</span><span style="color: #000000">&#160;ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">beforeAdvice</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&#160;定义前置通知&#160;</span><span style="color: #000000">--></span><span style="color: #000000">&#160;&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:before&#160;method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">before</span><span style="color: #000000">"</span><span style="color: #000000">&#160;pointcut</span><span style="color: #000000">-</span><span style="color: #000000">ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">methodAdvice</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000">&#160;&#160;&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">aop:config</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
4.测试一下前置通知<br />
<span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_39_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_214_Open_Text.style.display='none'; Codehighlighter1_39_214_Closed_Image.style.display='inline'; Codehighlighter1_39_214_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_39_214_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_214_Closed_Text.style.display='none'; Codehighlighter1_39_214_Open_Image.style.display='inline'; Codehighlighter1_39_214_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">static</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;main(String[]&#160;args)&#160;</span><span id="Codehighlighter1_39_214_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" alt="" /></span><span id="Codehighlighter1_39_214_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ApplicationContext&#160;context&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">new</span><span style="color: #000000">&#160;ClassPathXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">config\\advice.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Tv&#160;tv&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;(Tv)context.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">tv</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;tv.doPlay();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />&#160;&#160;&#160;&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />结果:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;正在打开电视机<img src="http://www.blogjava.net/Images/dot.gif" alt="" />..<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;打开电视机<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
5.定义返回后通知拦截处理类</p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_35_200_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_200_Open_Text.style.display='none'; Codehighlighter1_35_200_Closed_Image.style.display='inline'; Codehighlighter1_35_200_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_35_200_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_35_200_Closed_Text.style.display='none'; Codehighlighter1_35_200_Open_Image.style.display='inline'; Codehighlighter1_35_200_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">&#160;TestAfterReturnAdvice&#160;</span><span id="Codehighlighter1_35_200_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" alt="" /></span><span id="Codehighlighter1_35_200_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img id="Codehighlighter1_99_196_Open_Image" onclick="this.style.display='none'; Codehighlighter1_99_196_Open_Text.style.display='none'; Codehighlighter1_99_196_Closed_Image.style.display='inline'; Codehighlighter1_99_196_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_99_196_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_99_196_Closed_Text.style.display='none'; Codehighlighter1_99_196_Open_Image.style.display='inline'; Codehighlighter1_99_196_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;afterReturning(Object&#160;retVal)&#160;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&#160;Throwable&#160;</span><span id="Codehighlighter1_99_196_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" alt="" /></span><span id="Codehighlighter1_99_196_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;String&#160;returnVal&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;电视机已经打开</span><span style="color: #000000">!</span><span style="color: #000000">"</span><span style="color: #000000">;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">&#160;&#160;System.out.println(returnVal);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;retVal</span><span style="color: #000000">=</span><span style="color: #000000">&#160;(Object)returnVal;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
6.定义拦截器配置文件</p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">&#160;</span></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">bean&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">afterReturnAdvice</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.pitey.demo.TestAfterReturnAdvice</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:config</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&#160;定义切面&#160;</span><span style="color: #000000">--></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:aspect&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">afterReturnAdviceAspect</span><span style="color: #000000">"</span><span style="color: #000000">&#160;ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">afterReturnAdvice</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&#160;定义后置返回通知&#160;&#160;</span><span style="color: #000000">--></span><span style="color: #000000">&#160;&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:after</span><span style="color: #000000">-</span><span style="color: #000000">returning&#160;method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">afterReturning</span><span style="color: #000000">"</span><span style="color: #000000">&#160;pointcut</span><span style="color: #000000">-</span><span style="color: #000000">ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">methodAdvice</span><span style="color: #000000">"</span><span style="color: #000000">&#160;returning</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">retVal</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000">&#160;</span><span style="color: #008000">//</span><span style="color: #008000">returing&#160;为返回参数</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">&#160;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">aop:config</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
7.测试一下返回后通知<br />
<span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt"><br />
</span></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_39_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_214_Open_Text.style.display='none'; Codehighlighter1_39_214_Closed_Image.style.display='inline'; Codehighlighter1_39_214_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_39_214_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_214_Closed_Text.style.display='none'; Codehighlighter1_39_214_Open_Image.style.display='inline'; Codehighlighter1_39_214_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">static</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;main(String[]&#160;args)&#160;</span><span id="Codehighlighter1_39_214_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" alt="" /></span><span id="Codehighlighter1_39_214_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ApplicationContext&#160;context&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">new</span><span style="color: #000000">&#160;ClassPathXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">config\\advice.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Tv&#160;tv&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;(Tv)context.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">tv</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;tv.doPlay();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />&#160;&#160;&#160;&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />结果:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;正在打开电视机<img src="http://www.blogjava.net/Images/dot.gif" alt="" />..<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;打开电视机<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 电视机已经打开</span><span style="color: #000000">!</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
8.定义环绕通知拦截处理类（环绕通知在一个方法执行之前和之后执行。 它使得通知有机会既在一个方法执行之前又在执行之后运行。并且，它可以决定这个方法在什么时候执行，如何执行，甚至是否执行。 环绕通知经常在在某线程安全的环境下，你需要在一个方法执行之前和之后共享某种状态的时候使用。 请尽量使用最简单的满足你需求的通知。（比如如果前置通知（before advice）也可以适用的情况下不要使用环绕通知））<br />
通知方法的第一个参数的类型必须是 <code class="interfacename">ProceedingJoinPoint</code> 类型。在通知的主体中，调用 <code class="interfacename">ProceedingJoinPoint</code>的<code class="literal">proceed()</code> 方法来执行真正的方法。 <code class="literal">proceed</code> 方法也可能会被调用并且传入一个 <code class="classname">Object[]</code> 对象 - 该数组将作为方法执行时候的参数。</p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_33_245_Open_Image" onclick="this.style.display='none'; Codehighlighter1_33_245_Open_Text.style.display='none'; Codehighlighter1_33_245_Closed_Image.style.display='inline'; Codehighlighter1_33_245_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_33_245_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_33_245_Closed_Text.style.display='none'; Codehighlighter1_33_245_Open_Image.style.display='inline'; Codehighlighter1_33_245_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">&#160;TestMethodIntercepor</span><span id="Codehighlighter1_33_245_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" alt="" /></span><span id="Codehighlighter1_33_245_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;<br />
<img id="Codehighlighter1_112_242_Open_Image" onclick="this.style.display='none'; Codehighlighter1_112_242_Open_Text.style.display='none'; Codehighlighter1_112_242_Closed_Image.style.display='inline'; Codehighlighter1_112_242_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_112_242_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_112_242_Closed_Text.style.display='none'; Codehighlighter1_112_242_Open_Image.style.display='inline'; Codehighlighter1_112_242_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />&#160;</span><span style="color: #0000ff">public</span><span style="color: #000000">&#160;Object&#160;doBasicProfiling(ProceedingJoinPoint&#160;&#160;pjp)&#160;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&#160;Throwable&#160;</span><span id="Codehighlighter1_112_242_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" alt="" /></span><span id="Codehighlighter1_112_242_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">begining<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;Object&#160;obj&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;pjp.proceed();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">ending<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" />..</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #0000ff">return</span><span style="color: #000000">&#160;obj;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&#160;}</span></span><span style="color: #000000">&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
<br />
9.定义拦截器配置文件</p>
<p><span style="font-size: 10pt"><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-size: 10pt">&#160;</span></span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">bean&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">aroundAdvice</span><span style="color: #000000">"</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.pitey.demo.TestMethodIntercepor</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:config</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&#160;定义切面&#160;</span><span style="color: #000000">--></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:aspect&#160;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">aroundAspect</span><span style="color: #000000">"</span><span style="color: #000000">&#160;ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">aroundAdvice</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;</span><span style="color: #000000">aop:around&#160;method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">doBasicProfiling</span><span style="color: #000000">"</span><span style="color: #000000">&#160;pointcut</span><span style="color: #000000">-</span><span style="color: #000000">ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">methodBeforeAdvice</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">aop:aspect</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">aop:config</span><span style="color: #000000">></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<p><br />
<br />
10.测试一下环绕通知<br />
</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><img id="Codehighlighter1_39_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_214_Open_Text.style.display='none'; Codehighlighter1_39_214_Closed_Image.style.display='inline'; Codehighlighter1_39_214_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_39_214_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_214_Closed_Text.style.display='none'; Codehighlighter1_39_214_Open_Image.style.display='inline'; Codehighlighter1_39_214_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">static</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">void</span><span style="color: #000000">&#160;main(String[]&#160;args)&#160;</span><span id="Codehighlighter1_39_214_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" alt="" /></span><span id="Codehighlighter1_39_214_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ApplicationContext&#160;context&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">new</span><span style="color: #000000">&#160;ClassPathXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">config\\advice.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Tv&#160;tv&#160;</span><span style="color: #000000">=</span><span style="color: #000000">&#160;(Tv)context.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">tv</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;tv.doPlay();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />&#160;&#160;&#160;&#160;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />结果:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;begining<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;打开电视机<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ending<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" />..<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div>
<img src ="http://www.blogjava.net/pitey/aggbug/254143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2009-02-10 23:07 <a href="http://www.blogjava.net/pitey/archive/2009/02/10/254143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转:重写window.setTimeout传参数(支持传对象)的方法</title><link>http://www.blogjava.net/pitey/archive/2008/03/18/186930.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Tue, 18 Mar 2008 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2008/03/18/186930.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/186930.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2008/03/18/186930.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/186930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/186930.html</trackback:ping><description><![CDATA[<p><font face="Tahoma">也许你过去在setTimeout中传参数一直是这样</font></p>
<p><font face="Tahoma">setTimeout("pass(" + argu + ")",1000)</font></p>
<p><font face="Tahoma">这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function!!!</font></p>
<p><font face="Tahoma">看以下代码实现向里面的function 传参数</font></p>
<div style="border-left-color: #cccccc; padding-top: 4px; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; background-color: #eeeeee; font-size: 13px; width: 98%; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">text/javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">><br />
</span><span style="color: #000000;">var&#160;_st&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;window.setTimeout;window.setTimeout&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;function(fRef,&#160;mDelay) {<br />
</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(typeof&#160;fRef&#160;</span><span style="color: #000000;">==</span><span style="color: #000000;">&#160;</span><span style="color: #000000;">'</span><span style="color: #000000;">function</span><span style="color: #000000;">'</span><span style="color: #000000;">){&#160; <br />
&#160; var&#160;argu&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;Array.prototype.slice.call(arguments,</span><span style="color: #000000;">2</span><span style="color: #000000;">);&#160; <br />
&#160; var&#160;f&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;(function(){&#160;fRef.apply(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&#160;argu);&#160;});&#160; <br />
</span><span style="color: #0000ff;">&#160; return</span><span style="color: #000000;">&#160;_st(f,&#160;mDelay);&#160;} </span><span style="color: #0000ff;"><br />
&#160; return</span><span style="color: #000000;">&#160;_st(fRef,mDelay);}<br />
<br />
function&#160;test(x){&#160;alert(x);}<br />
window.setTimeout(test,</span><span style="color: #000000;">1000</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">fason</span><span style="color: #000000;">'</span><span style="color: #000000;">);</span><span style="color: #000000;"><br />
&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
</span></div>
<font face="Tahoma">
<p><font face="Tahoma">怎样?是不是很方便了?代码其实就很简单,重载了一下window.setTimeout,用apply去回调前面的function.</font></p>
</font>
<p><font face="Tahoma">还没有用过apply,call的可以去查资料,发现版本不够的看我低版本的实现方法<a href="http://blog.csdn.net/fason/archive/2004/07/30/apply_call.aspx" target="_blank"><font color="#006400">http://blog.csdn.net/fason/archive/2004/07/30/apply_call.aspx</font></a></font></p>
<p><font face="Tahoma">另外需要知道的是,NS环境下,后面的参数确实是来传给前面的函数的,IE烂,没有实现~~~~~~~~~~~~~</font></p>
<img src ="http://www.blogjava.net/pitey/aggbug/186930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2008-03-18 10:21 <a href="http://www.blogjava.net/pitey/archive/2008/03/18/186930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转document.execCommand()用法说明</title><link>http://www.blogjava.net/pitey/archive/2008/03/17/186862.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Mon, 17 Mar 2008 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2008/03/17/186862.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/186862.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2008/03/17/186862.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/186862.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/186862.html</trackback:ping><description><![CDATA[<div style="border-left-color: #cccccc; padding-top: 4px; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; background-color: #eeeeee; font-size: 13px; width: 98%; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">document.execCommand()用法说明</span><span style="color: #000000;"><br />
<br />
2D</span><span style="color: #000000;">-</span><span style="color: #000000;">Position&#160;允许通过拖曳移动绝对定位的对象。<br />
AbsolutePosition&#160;设定元素的&#160;position&#160;属性为&#8220;absolute&#8221;(绝对)。<br />
BackColor&#160;设置或获取当前选中区的背景颜色。<br />
BlockDirLTR&#160;目前尚未支持。<br />
BlockDirRTL&#160;目前尚未支持。<br />
Bold&#160;切换当前选中区的粗体显示与否。<br />
BrowseMode&#160;目前尚未支持。<br />
Copy&#160;将当前选中区复制到剪贴板。<br />
CreateBookmark&#160;创建一个书签锚或获取当前选中区或插入点的书签锚的名称。<br />
CreateLink&#160;在当前选中区上插入超级链接，或显示一个对话框允许用户指定要为当前选中区插入的超级链接的&#160;URL。<br />
Cut&#160;将当前选中区复制到剪贴板并删除之。<br />
Delete&#160;删除当前选中区。<br />
DirLTR&#160;目前尚未支持。<br />
DirRTL&#160;目前尚未支持。<br />
EditMode&#160;目前尚未支持。<br />
FontName&#160;设置或获取当前选中区的字体。<br />
FontSize&#160;设置或获取当前选中区的字体大小。<br />
ForeColor&#160;设置或获取当前选中区的前景(文本)颜色。<br />
FormatBlock&#160;设置当前块格式化标签。<br />
Indent&#160;增加选中文本的缩进。<br />
InlineDirLTR&#160;目前尚未支持。<br />
InlineDirRTL&#160;目前尚未支持。<br />
InsertButton&#160;用按钮控件覆盖当前选中区。<br />
InsertFieldset&#160;用方框覆盖当前选中区。<br />
InsertHorizontalRule&#160;用水平线覆盖当前选中区。<br />
InsertIFrame&#160;用内嵌框架覆盖当前选中区。<br />
InsertImage&#160;用图像覆盖当前选中区。<br />
InsertInputButton&#160;用按钮控件覆盖当前选中区。<br />
InsertInputCheckbox&#160;用复选框控件覆盖当前选中区。<br />
InsertInputFileUpload&#160;用文件上载控件覆盖当前选中区。<br />
InsertInputHidden&#160;插入隐藏控件覆盖当前选中区。<br />
InsertInputImage&#160;用图像控件覆盖当前选中区。<br />
InsertInputPassword&#160;用密码控件覆盖当前选中区。<br />
InsertInputRadio&#160;用单选钮控件覆盖当前选中区。<br />
InsertInputReset&#160;用重置控件覆盖当前选中区。<br />
InsertInputSubmit&#160;用提交控件覆盖当前选中区。<br />
InsertInputText&#160;用文本控件覆盖当前选中区。<br />
InsertMarquee&#160;用空字幕覆盖当前选中区。<br />
InsertOrderedList&#160;切换当前选中区是编号列表还是常规格式化块。<br />
InsertParagraph&#160;用换行覆盖当前选中区。<br />
InsertSelectDropdown&#160;用下拉框控件覆盖当前选中区。<br />
InsertSelectListbox&#160;用列表框控件覆盖当前选中区。<br />
InsertTextArea&#160;用多行文本输入控件覆盖当前选中区。<br />
InsertUnorderedList&#160;切换当前选中区是项目符号列表还是常规格式化块。<br />
Italic&#160;切换当前选中区斜体显示与否。<br />
JustifyCenter&#160;将当前选中区在所在格式化块置中。<br />
JustifyFull&#160;目前尚未支持。<br />
JustifyLeft&#160;将当前选中区所在格式化块左对齐。<br />
JustifyNone&#160;目前尚未支持。<br />
JustifyRight&#160;将当前选中区所在格式化块右对齐。<br />
LiveResize&#160;迫使&#160;MSHTML&#160;编辑器在缩放或移动过程中持续更新元素外观，而不是只在移动或缩放完成后更新。<br />
MultipleSelection&#160;允许当用户按住&#160;Shift&#160;或&#160;Ctrl&#160;键时一次选中多于一个站点可选元素。<br />
Open&#160;打开。<br />
Outdent&#160;减少选中区所在格式化块的缩进。<br />
OverWrite&#160;切换文本状态的插入和覆盖。<br />
Paste&#160;用剪贴板内容覆盖当前选中区。<br />
PlayImage&#160;目前尚未支持。<br />
Print&#160;打开打印对话框以便用户可以打印当前页。<br />
Redo&#160;重做。<br />
Refresh&#160;刷新当前文档。<br />
RemoveFormat&#160;从当前选中区中删除格式化标签。<br />
RemoveParaFormat&#160;目前尚未支持。<br />
SaveAs&#160;将当前&#160;Web&#160;页面保存为文件。<br />
SelectAll&#160;选中整个文档。<br />
SizeToControl&#160;目前尚未支持。<br />
SizeToControlHeight&#160;目前尚未支持。<br />
SizeToControlWidth&#160;目前尚未支持。<br />
Stop&#160;停止。<br />
StopImage&#160;目前尚未支持。<br />
StrikeThrough&#160;目前尚未支持。<br />
Subscript&#160;目前尚未支持。<br />
Superscript&#160;目前尚未支持。<br />
UnBookmark&#160;从当前选中区中删除全部书签。<br />
Underline&#160;切换当前选中区的下划线显示与否。<br />
Undo&#160;撤消。<br />
Unlink&#160;从当前选中区中删除全部超级链接。<br />
Unselect&#160;清除当前选中区的选中状态。<br />
<br />
</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">HTML</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">HEAD</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">TITLE</span><span style="color: #000000;">></span><span style="color: #000000;">JavaScript</span><span style="color: #000000;">--</span><span style="color: #000000;">execCommand指令集</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">TITLE</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">SCRIPT&#160;LANGUAGE</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
</span><span style="color: #000000;">&lt;!--</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function执行copy指令<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_doufucopy(){<br />
<br />
edit.select();<br />
<br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Copy</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function执行paste指令<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_doufupaste()&#160;{<br />
<br />
tt.focus();<br />
<br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">paste</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来创建一个超链接<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_creatlink()<br />
<br />
{<br />
<br />
&#160;&#160;&#160;&#160;&#160;document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">CreateLink</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #0000ff;">true</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">true</span><span style="color: #000000;">'</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">弹出一个对话框输入URL<br />
<br />
&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('CreateLink',false,'</span><span style="color: #008000; text-decoration: underline;">http://www.51js.com</span><span style="color: #008000;">');</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来将选中的区块设为指定的背景色<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_change_backcolor()<br />
<br />
{<br />
<br />
&#160;&#160;&#160;&#160;&#160;document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">BackColor</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #0000ff;">true</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">#FFbbDD</span><span style="color: #000000;">'</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">true或false都可以</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来将选中的区块设为指定的前景色,改变选中区块的字体大小,改变字体,字体变粗变斜<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_change_forecolor()<br />
<br />
{<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">指定前景色</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">ForeColor</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">#BBDDCC</span><span style="color: #000000;">'</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">true或false都可以<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">指定背景色</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">FontSize</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">);&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">true或false都可以<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">字体必须是系统支持的字体</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">FontName</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">标楷体</span><span style="color: #000000;">'</span><span style="color: #000000;">);&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">true或false都可以<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">字体变粗</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Bold</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">变斜体</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Italic</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来将选中的区块加上不同的线条<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_change_selection()<br />
<br />
{<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">将选中的文字加下划线</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Underline</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">在选中的文字上划粗线</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">StrikeThrough</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">将选中的部分文字变细</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">SuperScript</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">将选中区块的下划线取消掉</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Underline</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;*该function用来将选中的区块排成不同的格式<br />
<br />
&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_format()<br />
<br />
{<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">有序列排列</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">InsertOrderedList</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">实心无序列排列</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">InsertUnorderedList</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">空心无序列排列</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Indent</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来将选中的区块剪下或是删除掉<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_CutOrDel()<br />
<br />
{<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">删除选中的区块<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('Delete');<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">剪下选中的区块</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">Cut</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来将选中的区块重设为一个相应的物件<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_InsObj()<br />
<br />
{<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;******************************************<br />
<br />
&#160;&#160;&#160;&#160;&#160;*&#160;以下指令都是为选中的区块重设一个object;<br />
<br />
&#160;&#160;&#160;&#160;&#160;*&#160;如没有特殊说明,第二个参数true或false是一样的;<br />
<br />
&#160;&#160;&#160;&#160;&#160;*&#160;参数三表示为该object的id;<br />
<br />
&#160;&#160;&#160;&#160;&#160;*&#160;可以用在javascript中通过其指定的id来控制它<br />
<br />
&#160;&#160;&#160;&#160;&#160;******************************************<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;">重设为一个button(InsertButton和InsertInputButtong一样,<br />
<br />
只不前者是button,后者是input)</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;">document.execCommand('InsertButton',false,"aa");&#160;//true或false无效<br />
<br />
document.all.aa.value="风舞九天";</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">重设为一个fieldset</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;">document.execCommand('InsertFieldSet',true,"aa");<br />
<br />
document.all.aa.innerText="刀剑如梦";</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个水平线<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertHorizontalRule',true,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个iframe<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertIFrame',true,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个InsertImage,设为true时需要图片,false时不需图片<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertImage',false,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个checkbox<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputCheckbox',true,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个file类型的object<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputFileUpload',false,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个hidden</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;">document.execCommand('InsertInputHidden',false,"aa");<br />
<br />
alert(document.all.aa.id);</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个InputImage</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;">document.execCommand('InsertInputImage',false,"aa");<br />
<br />
document.all.aa.src="F-a10.gif";</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个Password<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputPassword',true,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个Radio<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputRadio',false,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个Reset<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputReset',true,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个Submit<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputSubmit',false,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个input&#160;text<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertInputText',false,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个textarea<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertTextArea',true,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个&#160;select&#160;list&#160;box<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertSelectListbox',false,"aa");<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个single&#160;select</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">InsertSelectDropdown</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #0000ff;">true</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">aa</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个line&#160;break(硬回车??)<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('InsertParagraph');<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">插入一个marquee</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;">document.execCommand('InsertMarquee',true,"aa");<br />
<br />
document.all.aa.innerText="bbbbb";</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">用于取消选中的阴影部分<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('Unselect');<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">选中页面上的所有元素<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('SelectAll');</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
}<br />
<br />
</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
<br />
*该function用来将页面保存为一个文件<br />
<br />
</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
function&#160;fn_save()<br />
<br />
{<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">第二个参数为欲保存的文件名</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
document.execCommand(</span><span style="color: #000000;">'</span><span style="color: #000000;">SaveAs</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">mycodes.txt</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">打印整个页面<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">document.execCommand('print');</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
}<br />
<br />
</span><span style="color: #000000;">--></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">SCRIPT</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">HEAD</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">body</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">edit</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">范例</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">edit</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">button&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_doufucopy()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button1</span><span style="color: #000000;">"</span><span style="color: #000000;">></span><span style="color: #000000;">Copy</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">button</span><span style="color: #000000;">></span><span style="color: #000000;">&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">button&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_doufupaste()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button2</span><span style="color: #000000;">"</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;paste</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">button</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">textarea&#160;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">tt</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;rows</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">10</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;cols</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">50</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">tt</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;/</span><span style="color: #000000;">textarea</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">hr</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;浮沉聚散变化又再,但是总可卷土重来.</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;天若有情天亦老,人间正道是沧桑.</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;都怪我,太执着,却也等不到花开叶落.</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Please&#160;select&#160;above&#160;letters,&#160;then&#160;click&#160;following&#160;buttons:</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">hr</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">创建CreateLink</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_creatlink()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button3</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button3</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">改变文字背景色</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_change_backcolor()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button4</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button4</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">改变文字前景色</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_change_forecolor()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button5</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button5</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">给文字加线条</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_change_selection()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button6</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button6</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">改变文字的排列</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_format()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button7</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button7</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">删除或剪下选中的部分</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_CutOrDel()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button8</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button8</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">插入Object</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_InsObj()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button9</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button9</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">保存或打印文件</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">fn_save()</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button10</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button10</span><span style="color: #000000;">"</span><span style="color: #000000;">>&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">input&#160;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">button</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">测试Refresh属性</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">document.execCommand('Refresh')</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;ID</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button11</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;NAME</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Button11</span><span style="color: #000000;">"</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">body</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">HTML</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
<br />
普通的方式是激活一个</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iframe</span><span style="color: #000000;">></span><span style="color: #000000;">进入编辑状态，命令如下<br />
<br />
IframeNamer.document.designMode</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">On</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
<br />
字体</span><span style="color: #000000;">--</span><span style="color: #000000;">宋体、黑体、楷体等<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">fontname</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">""</span><span style="color: #000000;">,字体)<br />
<br />
字号</span><span style="color: #000000;">--</span><span style="color: #000000;">字号大小<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">fontsize</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">""</span><span style="color: #000000;">,字号)<br />
<br />
加重<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Bold</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
斜体<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Italic</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
下划线<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Underline</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
删除线<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">StrikeThrough</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
上标<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">SuperScript</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
下标<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">SubScript</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
有序排列</span><span style="color: #000000;">--</span><span style="color: #000000;">数字序号<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">InsertOrderedList</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
无序排列</span><span style="color: #000000;">--</span><span style="color: #000000;">圆点序号<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">InsertUnorderedList</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
向前缩进<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Outdent</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
向后缩进<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Indent</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
居左<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">JustifyLeft</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
居右<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">JustifyRight</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
居中<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">JustifyCenter</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
剪切<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Cut</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
拷贝<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Copy</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
粘贴<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Paste</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
覆盖<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Overwrite</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
取消操作</span><span style="color: #000000;">--</span><span style="color: #000000;">IE5.0以后可以无限取消<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Undo</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
重复操作<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">Redo</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
设置链接</span><span style="color: #000000;">--</span><span style="color: #000000;">若按以下写法，在IE5.0版本中会激活一个内建窗口，可以完成输入链接的功能，而且还可以选择MAILTO、FTP等各种链接类型，比较方便<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">CreateLink</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
<br />
在IE4.0中，没有内建链接输入窗口，所以就需要用以下方式嵌入链接<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">CreateLink</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">""</span><span style="color: #000000;">,TURL)<br />
<br />
插入图片</span><span style="color: #000000;">--</span><span style="color: #000000;">由于IE中嵌入的可编控件是针对本地资源的，所以其默认的图片资源来自本地，所以基于WEB内容的编辑最好自己做输入框，然后用如下命令实现。<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">InsertImage</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">""</span><span style="color: #000000;">,ImgURL)<br />
<br />
字体颜色<br />
<br />
execCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">ForeColor</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">""</span><span style="color: #000000;">,CColor)<br />
</span></div>
<img src ="http://www.blogjava.net/pitey/aggbug/186862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2008-03-17 21:18 <a href="http://www.blogjava.net/pitey/archive/2008/03/17/186862.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取 Iframe内的元素对象</title><link>http://www.blogjava.net/pitey/archive/2008/03/09/184830.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Sun, 09 Mar 2008 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2008/03/09/184830.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/184830.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2008/03/09/184830.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/184830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/184830.html</trackback:ping><description><![CDATA[例子:<br />
&#160;获得ifream的对象，并把ifreame中页面&lt;div id="my">隐藏掉<br />
<br />
test1.html<br />
<div style="border-left-color: #cccccc; padding-top: 4px; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; background-color: #eeeeee; font-size: 13px; width: 98%; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;"><br />
&lt;html><br />
&lt;head><br />
&lt;script><br />
function t(){<br />
var dd = document.all('test2').contentWindow.document;<br />
dd.getElementById('my').style.display='none';<br />
<br />
}<br />
&lt;/script><br />
&lt;/head><br />
&lt;body ><br />
&lt;input type="button" value="test" onClick="t();"/><br />
&lt;iframe id="test2" name="test2" src="test2.html">&lt;/iframe><br />
&lt;/body><br />
&lt;/html></span><span style="color: #000000;"><br />
</span></div>
test2.html<br />
<div style="border-left-color: #cccccc; padding-top: 4px; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; background-color: #eeeeee; font-size: 13px; width: 98%; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&lt;</span><span style="color: #000000;">html</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">head</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">head</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">body</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160;&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div&#160;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">my</span><span style="color: #000000;">"</span><span style="color: #000000;">&#160;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">my</span><span style="color: #000000;">"</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
&#160;&#160;&#160;&#160;&#160;&#160; 测试一下，父窗体可以把我隐藏掉!!!!!!!!<br />
&#160;&#160; </span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">body</span><span style="color: #000000;">></span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">html</span><span style="color: #000000;">></span></div>
<br />
<br />
<br />
<img src ="http://www.blogjava.net/pitey/aggbug/184830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2008-03-09 13:48 <a href="http://www.blogjava.net/pitey/archive/2008/03/09/184830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 获取Connection</title><link>http://www.blogjava.net/pitey/archive/2008/03/05/183932.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Wed, 05 Mar 2008 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2008/03/05/183932.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/183932.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2008/03/05/183932.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/183932.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/183932.html</trackback:ping><description><![CDATA[<div style="border-left-color: #cccccc; padding-top: 4px; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; background-color: #eeeeee; font-size: 13px; width: 98%; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">applicationContext.xml里面设置<br />
<br />
&lt;bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="default" autowire="default" dependency-check="default"><br />
&#160;&#160;&#160; &#160;&#160;&#160; &lt;property name="jndiName"><br />
&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &lt;value>JDBC/TEST&lt;/value>&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; <br />
&#160;&#160;&#160; &#160;&#160;&#160; &lt;/property><br />
&lt;/bean> 或者<br />
<br />
&lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><br />
&#160;&#160;&#160; &#160;&#160;&#160; &lt;property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">&lt;/property><br />
&#160;&#160;&#160; &#160;&#160;&#160; &lt;property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ora">&lt;/property><br />
&#160;&#160;&#160; &#160;&#160;&#160; &lt;property name="username" value="test">&lt;/property><br />
&#160;&#160;&#160; &#160;&#160;&#160; &lt;property name="password" value="123456">&lt;/property><br />
&#160;&#160;&#160; &lt;/bean><br />
<br />
</span><span style="color: #000000;"><br />
通过</span><span style="color: #000000;">DataSourceUtils.getConnection(</span><span style="color: #000000;">DataSource</span><span style="color: #000000;">）;就能获取到设置的DataSource 然后获得connection<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&#160;Connection&#160;getConnection()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&#160;SQLException<br />
&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&#160;DataSourceUtils.getConnection((DataSource)ServiceLocator.getBean(</span><span style="color: #000000;">"</span><span style="color: #000000;">dataSource</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
}<br />
</span><span style="color: #000000;"><span  style="color: #0000ff; "><br />
</span>
</span></div>
<img src ="http://www.blogjava.net/pitey/aggbug/183932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2008-03-05 12:45 <a href="http://www.blogjava.net/pitey/archive/2008/03/05/183932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模式窗体关闭后调用父类窗体的方法</title><link>http://www.blogjava.net/pitey/archive/2007/05/07/115728.html</link><dc:creator>Pitey</dc:creator><author>Pitey</author><pubDate>Mon, 07 May 2007 09:04:00 GMT</pubDate><guid>http://www.blogjava.net/pitey/archive/2007/05/07/115728.html</guid><wfw:comment>http://www.blogjava.net/pitey/comments/115728.html</wfw:comment><comments>http://www.blogjava.net/pitey/archive/2007/05/07/115728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pitey/comments/commentRss/115728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pitey/services/trackbacks/115728.html</trackback:ping><description><![CDATA[首先父窗有一个test()方法。<br />
调用模式窗体window.showModalDialog('/test.html',window)&#160;&#160;  记得第二个参数一定要把父类窗体当参数传到模式窗体。<br />
<br />
模式窗体加入事件<br />
&lt;script for="window" event="onunload"><br />
&#160;&#160;&#160; dialogArguments.window.test(); &#160;  <br />
&lt;/script><br />
这样就可以在模式窗体关闭或者是重载的时候调用父类窗体的方法，如果不想让重载的时候调用父窗体的test()方法，可以给父窗体传一个变量，到时候根据变量的值来判断是不是要执行test()方法。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/pitey/aggbug/115728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pitey/" target="_blank">Pitey</a> 2007-05-07 17:04 <a href="http://www.blogjava.net/pitey/archive/2007/05/07/115728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>