??xml version="1.0" encoding="utf-8" standalone="yes"?>午夜精品视频一区,中文字幕免费在线视频,美女主播精品视频一二三四http://www.aygfsteel.com/lilan1983/category/1543.htmlBeyond Technology!!!zh-cnFri, 02 Mar 2007 06:54:23 GMTFri, 02 Mar 2007 06:54:23 GMT60实现拦截?/title><link>http://www.aygfsteel.com/lilan1983/archive/2005/12/28/25771.html</link><dc:creator>李岚</dc:creator><author>李岚</author><pubDate>Wed, 28 Dec 2005 11:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/lilan1983/archive/2005/12/28/25771.html</guid><wfw:comment>http://www.aygfsteel.com/lilan1983/comments/25771.html</wfw:comment><comments>http://www.aygfsteel.com/lilan1983/archive/2005/12/28/25771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lilan1983/comments/commentRss/25771.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lilan1983/services/trackbacks/25771.html</trackback:ping><description><![CDATA[     摘要: 背景Q?拦截器是现在很多E序必须的一个东ѝ比如要在某个方法的前后做些处理Q在一些特定的情况下可能会(x)D大量的重复代码。而假如我们拥有了(jin)cM拦截器一L(fng)东西Q那我们可以Q意在自己希望的方法的执行前后做我们自q处理Q比如日志,取得参数或者是事务{?  实现Q?1Q首先定义一个业务接?  1/** *//** 3 *&nbs...  <a href='http://www.aygfsteel.com/lilan1983/archive/2005/12/28/25771.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lilan1983/aggbug/25771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lilan1983/" target="_blank">李岚</a> 2005-12-28 19:02 <a href="http://www.aygfsteel.com/lilan1983/archive/2005/12/28/25771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring和W(xu)ebworkl合的方?/title><link>http://www.aygfsteel.com/lilan1983/archive/2005/11/23/21119.html</link><dc:creator>李岚</dc:creator><author>李岚</author><pubDate>Wed, 23 Nov 2005 05:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/lilan1983/archive/2005/11/23/21119.html</guid><wfw:comment>http://www.aygfsteel.com/lilan1983/comments/21119.html</wfw:comment><comments>http://www.aygfsteel.com/lilan1983/archive/2005/11/23/21119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lilan1983/comments/commentRss/21119.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lilan1983/services/trackbacks/21119.html</trackback:ping><description><![CDATA[<P><FONT size=2>前两U方式webwork的wiki里有Q就不多说了(jin),<A >点这里可以查?/A>?BR>而以下的l出的思\是webwork mail list的讨论的一U方案,应该是最好的一U方案?BR><BR>代码1Q?/FONT></P> <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"><FONT size=2><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_505_2496_Open_Image onclick="this.style.display='none'; Codehighlighter1_505_2496_Open_Text.style.display='none'; Codehighlighter1_505_2496_Closed_Image.style.display='inline'; Codehighlighter1_505_2496_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_505_2496_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_505_2496_Closed_Text.style.display='none'; Codehighlighter1_505_2496_Open_Image.style.display='inline'; Codehighlighter1_505_2496_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> SpringContainer </SPAN><SPAN style="COLOR: #0000ff">implements</SPAN><SPAN style="COLOR: #000000"> Container </SPAN><SPAN id=Codehighlighter1_505_2496_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_505_2496_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">private</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000"> ApplicationContext applicationContext;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_617_726_Open_Image onclick="this.style.display='none'; Codehighlighter1_617_726_Open_Text.style.display='none'; Codehighlighter1_617_726_Closed_Image.style.display='inline'; Codehighlighter1_617_726_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_617_726_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_617_726_Closed_Text.style.display='none'; Codehighlighter1_617_726_Open_Image.style.display='inline'; Codehighlighter1_617_726_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> SpringContainer(ServletContext servletContext) </SPAN><SPAN id=Codehighlighter1_617_726_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_617_726_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">.applicationContext </SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT><SPAN style="COLOR: #000000"><FONT size=2> WebApplicationContextUtils.getWebApplicationContext(servletContext);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_795_855_Open_Image onclick="this.style.display='none'; Codehighlighter1_795_855_Open_Text.style.display='none'; Codehighlighter1_795_855_Closed_Image.style.display='inline'; Codehighlighter1_795_855_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_795_855_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_795_855_Closed_Text.style.display='none'; Codehighlighter1_795_855_Open_Image.style.display='inline'; Codehighlighter1_795_855_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> SpringContainer(ApplicationContext applicationContext) </SPAN><SPAN id=Codehighlighter1_795_855_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_795_855_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">.applicationContext </SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT><SPAN style="COLOR: #000000"><FONT size=2> applicationContext;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_862_1012_Open_Image onclick="this.style.display='none'; Codehighlighter1_862_1012_Open_Text.style.display='none'; Codehighlighter1_862_1012_Closed_Image.style.display='inline'; Codehighlighter1_862_1012_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_862_1012_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_862_1012_Closed_Text.style.display='none'; Codehighlighter1_862_1012_Open_Image.style.display='inline'; Codehighlighter1_862_1012_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><SPAN id=Codehighlighter1_862_1012_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"><FONT size=2>/** */</FONT></SPAN><SPAN id=Codehighlighter1_862_1012_Open_Text><SPAN style="COLOR: #008000"><FONT size=2>/**</FONT></SPAN><SPAN style="COLOR: #008000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>     * </FONT></SPAN><SPAN style="COLOR: #808080"><FONT size=2>@param</FONT></SPAN><FONT size=2><SPAN style="COLOR: #008000"> key<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>     *            component class type or component name<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>     * </SPAN><SPAN style="COLOR: #808080">@return</SPAN><SPAN style="COLOR: #008000"> </SPAN><SPAN style="COLOR: #808080">@throws</SPAN></FONT><SPAN style="COLOR: #008000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>     *         ComponentNotFoundException<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>     </FONT></SPAN><SPAN style="COLOR: #008000"><FONT size=2>*/</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG id=Codehighlighter1_1091_2060_Open_Image onclick="this.style.display='none'; Codehighlighter1_1091_2060_Open_Text.style.display='none'; Codehighlighter1_1091_2060_Closed_Image.style.display='inline'; Codehighlighter1_1091_2060_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1091_2060_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1091_2060_Closed_Text.style.display='none'; Codehighlighter1_1091_2060_Open_Image.style.display='inline'; Codehighlighter1_1091_2060_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> Object getComponent(Object key) </SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000"> ComponentNotFoundException </SPAN><SPAN id=Codehighlighter1_1091_2060_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_1091_2060_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (applicationContext </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            </SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> IllegalStateException(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Spring Application context has not been set</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (key </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            </SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> ComponentNotFoundException(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">The component key can not be null</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_1371_1995_Open_Image onclick="this.style.display='none'; Codehighlighter1_1371_1995_Open_Text.style.display='none'; Codehighlighter1_1371_1995_Closed_Image.style.display='inline'; Codehighlighter1_1371_1995_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1371_1995_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1371_1995_Closed_Text.style.display='none'; Codehighlighter1_1371_1995_Open_Image.style.display='inline'; Codehighlighter1_1371_1995_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (key </SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000"> Class) </SPAN><SPAN id=Codehighlighter1_1371_1995_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_1371_1995_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            Map beans </SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000"> applicationContext.getBeansOfType((Class) key);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (beans </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                </SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> ComponentNotFoundException(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">The container is unable to resolve single instance of </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000"> ((Class) key).getName()<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                        </SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, none instances found</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (beans.size() </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">||</SPAN><SPAN style="COLOR: #000000"> beans.size() </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">1</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                </SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> ComponentNotFoundException(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">The container is unable to resolve single instance of </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000"> ((Class) key).getName()<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                        </SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, number of instances found was: </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT><FONT size=2><SPAN style="COLOR: #000000"> beans.size());<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            key </SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT><SPAN style="COLOR: #000000"><FONT size=2> beans.keySet().iterator().next();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </FONT></SPAN><SPAN style="COLOR: #0000ff"><FONT size=2>return</FONT></SPAN><SPAN style="COLOR: #000000"><FONT size=2> applicationContext.getBean(key.toString());<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_2088_2180_Open_Image onclick="this.style.display='none'; Codehighlighter1_2088_2180_Open_Text.style.display='none'; Codehighlighter1_2088_2180_Closed_Image.style.display='inline'; Codehighlighter1_2088_2180_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2088_2180_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2088_2180_Closed_Text.style.display='none'; Codehighlighter1_2088_2180_Open_Image.style.display='inline'; Codehighlighter1_2088_2180_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> reload() </SPAN><SPAN id=Codehighlighter1_2088_2180_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_2088_2180_Open_Text><SPAN style="COLOR: #000000"><FONT size=2>{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        close();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        ((AbstractApplicationContext) applicationContext).refresh();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_2230_2393_Open_Image onclick="this.style.display='none'; Codehighlighter1_2230_2393_Open_Text.style.display='none'; Codehighlighter1_2230_2393_Closed_Image.style.display='inline'; Codehighlighter1_2230_2393_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2230_2393_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2230_2393_Closed_Text.style.display='none'; Codehighlighter1_2230_2393_Open_Image.style.display='inline'; Codehighlighter1_2230_2393_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> autowireComponent(Object bean) </SPAN><SPAN id=Codehighlighter1_2230_2393_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_2230_2393_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        ((AbstractApplicationContext) applicationContext).getBeanFactory().autowireBeanProperties(bean, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, </SPAN><SPAN style="COLOR: #0000ff">false</SPAN></FONT><SPAN style="COLOR: #000000"><FONT size=2>);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_2420_2493_Open_Image onclick="this.style.display='none'; Codehighlighter1_2420_2493_Open_Text.style.display='none'; Codehighlighter1_2420_2493_Closed_Image.style.display='inline'; Codehighlighter1_2420_2493_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2420_2493_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2420_2493_Closed_Text.style.display='none'; Codehighlighter1_2420_2493_Open_Image.style.display='inline'; Codehighlighter1_2420_2493_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> close() </SPAN><SPAN id=Codehighlighter1_2420_2493_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_2420_2493_Open_Text><SPAN style="COLOR: #000000"><FONT size=2>{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        ((AbstractApplicationContext) applicationContext).close();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</FONT></SPAN></SPAN></DIV><BR><FONT size=2>代码2Q?BR></FONT> <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"><FONT size=2><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_206_574_Open_Image onclick="this.style.display='none'; Codehighlighter1_206_574_Open_Text.style.display='none'; Codehighlighter1_206_574_Closed_Image.style.display='inline'; Codehighlighter1_206_574_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_206_574_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_206_574_Closed_Text.style.display='none'; Codehighlighter1_206_574_Open_Image.style.display='inline'; Codehighlighter1_206_574_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> ComponentAutowireInterceptor </SPAN><SPAN style="COLOR: #0000ff">implements</SPAN><SPAN style="COLOR: #000000"> Interceptor </SPAN><SPAN id=Codehighlighter1_206_574_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_206_574_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_236_285_Open_Image onclick="this.style.display='none'; Codehighlighter1_236_285_Open_Text.style.display='none'; Codehighlighter1_236_285_Closed_Image.style.display='inline'; Codehighlighter1_236_285_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_236_285_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_285_Closed_Text.style.display='none'; Codehighlighter1_236_285_Open_Image.style.display='inline'; Codehighlighter1_236_285_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> destroy() </SPAN><SPAN id=Codehighlighter1_236_285_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_236_285_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> TODO Auto-generated method stub</SPAN></FONT><SPAN style="COLOR: #008000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></FONT></SPAN><SPAN style="COLOR: #000000"><FONT size=2>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_311_360_Open_Image onclick="this.style.display='none'; Codehighlighter1_311_360_Open_Text.style.display='none'; Codehighlighter1_311_360_Closed_Image.style.display='inline'; Codehighlighter1_311_360_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_311_360_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_311_360_Closed_Text.style.display='none'; Codehighlighter1_311_360_Open_Image.style.display='inline'; Codehighlighter1_311_360_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> init() </SPAN><SPAN id=Codehighlighter1_311_360_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_311_360_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> TODO Auto-generated method stub</SPAN></FONT><SPAN style="COLOR: #008000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></FONT></SPAN><SPAN style="COLOR: #000000"><FONT size=2>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_437_571_Open_Image onclick="this.style.display='none'; Codehighlighter1_437_571_Open_Text.style.display='none'; Codehighlighter1_437_571_Closed_Image.style.display='inline'; Codehighlighter1_437_571_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_437_571_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_437_571_Closed_Text.style.display='none'; Codehighlighter1_437_571_Open_Image.style.display='inline'; Codehighlighter1_437_571_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> String intercept(ActionInvocation invocation) </SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000"> Exception </SPAN><SPAN id=Codehighlighter1_437_571_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.aygfsteel.com/images/dot.gif"></SPAN></FONT><SPAN id=Codehighlighter1_437_571_Open_Text><FONT size=2><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        Application.getInstance().getContainer().autowireComponent(invocation.getAction());<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">return</SPAN></FONT><SPAN style="COLOR: #000000"><FONT size=2> invocation.invoke();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</FONT></SPAN></SPAN><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN></DIV><BR><FONT size=2>q几D代码,你不需要在spring里配|a(chn)ctionQ也不需要在xwork.xml里面配置external-ref。只要保证action引用的东东和spring里面同名p够auto wire by name?jin)?BR><BR>原理Q拦截器?x)在每个action之前调用autowireComponent(invocation.getAction())。这样spring׃(x)去自动组装这个传q来的action对象Q而action对象里的属性和spring里的bean id同名。所以spring׃(x)自动application.xml里对应的bean注射到action的属性里去,从而达到把action按用户希望的方式l装h的目的?BR><BR>如:(x)<BR>appliaction.xml<BR></FONT> <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"><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">    </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">bean </SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="myService"</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>        </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">property </SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="target"</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>            </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">bean </SPAN><SPAN style="COLOR: #ff0000">class</SPAN><SPAN style="COLOR: #0000ff">="myServiceDefaultImpl"</SPAN><SPAN style="COLOR: #ff0000"> autowire</SPAN><SPAN style="COLOR: #0000ff">="byName"</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>          </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>    </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT></DIV><BR><FONT size=2>xwork.xml<BR></FONT> <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"><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">        </SPAN><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">action </SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="myAction"</SPAN><SPAN style="COLOR: #ff0000"> class</SPAN><SPAN style="COLOR: #0000ff">="myAction"</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>            </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff"><</SPAN><SPAN style="COLOR: #800000">result </SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="success"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000">/success.ftl</SPAN><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">result</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT><SPAN style="COLOR: #000000"><BR><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>        </FONT></SPAN><FONT size=2><SPAN style="COLOR: #0000ff"></</SPAN><SPAN style="COLOR: #800000">action</SPAN><SPAN style="COLOR: #0000ff">></SPAN></FONT></DIV><BR><FONT size=2>Action:<BR></FONT> <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"><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT><SPAN style="COLOR: #000000"><FONT size=2>public class myAction extends ActionSupport {<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>    protected myService;<BR>         .......<BR><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>    }<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN></DIV><BR><FONT size=2>最后记得要在web.xml配上listener-class</FONT><img src ="http://www.aygfsteel.com/lilan1983/aggbug/21119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lilan1983/" target="_blank">李岚</a> 2005-11-23 13:52 <a href="http://www.aygfsteel.com/lilan1983/archive/2005/11/23/21119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AOP,IOC,Springhttp://www.aygfsteel.com/lilan1983/archive/2005/06/01/5408.html李岚李岚Wed, 01 Jun 2005 06:11:00 GMThttp://www.aygfsteel.com/lilan1983/archive/2005/06/01/5408.htmlhttp://www.aygfsteel.com/lilan1983/comments/5408.htmlhttp://www.aygfsteel.com/lilan1983/archive/2005/06/01/5408.html#Feedback0http://www.aygfsteel.com/lilan1983/comments/commentRss/5408.htmlhttp://www.aygfsteel.com/lilan1983/services/trackbacks/5408.html理解AOP


AspectOrientedProgrammingAOPAOPAspectAspectAspectOOPgeneralizationspecializationAOPDecorator

SpringIocSingleton,XMLSpring通过?/SPAN>lg工厂?/SPAN>BeanFactoryApplicationContextIocIocIocXMLJavaXMLIocXMLTemplate MethodTemplateTemplate

李岚 2005-06-01 14:11 发表评论
]]>
对Spring MVC Framework的理?/title><link>http://www.aygfsteel.com/lilan1983/archive/2005/05/27/5258.html</link><dc:creator>李岚</dc:creator><author>李岚</author><pubDate>Fri, 27 May 2005 03:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/lilan1983/archive/2005/05/27/5258.html</guid><wfw:comment>http://www.aygfsteel.com/lilan1983/comments/5258.html</wfw:comment><comments>http://www.aygfsteel.com/lilan1983/archive/2005/05/27/5258.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lilan1983/comments/commentRss/5258.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lilan1983/services/trackbacks/5258.html</trackback:ping><description><![CDATA[     摘要: 前言 最q在看Spring MVC的源?把自己对MVC模式和对各种框架的实现的认识写出来给大家看看,是一个ȝ.所?恌大家用怀疑的眼光来看待这文?假如有认识不对的地方,ȝ(ch)指出. MVC与WEB应用 MVC是什么就不用我多说了(jin).对于现有较成熟的Model-View-Control(MVC)框架而言,其注意的主要问题无外乎下面这? Model: 模型应该包含p图显C的数据...  <a href='http://www.aygfsteel.com/lilan1983/archive/2005/05/27/5258.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lilan1983/aggbug/5258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lilan1983/" target="_blank">李岚</a> 2005-05-27 11:29 <a href="http://www.aygfsteel.com/lilan1983/archive/2005/05/27/5258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߮</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͳ</a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">ܿ</a>| <a href="http://" target="_blank">α</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ѧ</a>| <a href="http://" target="_blank">³ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӻ</a>| <a href="http://" target="_blank">ʶ</a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">Ǧɽ</a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">޳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֽ</a>| <a href="http://" target="_blank">绯</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>