锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成影院在线高清,亚洲日本中文字幕天天更新,亚洲最新黄色网址http://www.tkk7.com/supercrsky/category/27531.html涓撴敞浜嶫avaWeb寮鍙?/description>zh-cnMon, 28 Jan 2008 19:37:51 GMTMon, 28 Jan 2008 19:37:51 GMT60浣跨敤Spring鐨凜haracterEncodingFilter搴旀敞鎰忕殑闂http://www.tkk7.com/supercrsky/articles/178219.html銆呬笂鍠勮嫢姘淬?/dc:creator>銆呬笂鍠勮嫢姘淬?/author>Mon, 28 Jan 2008 09:45:00 GMThttp://www.tkk7.com/supercrsky/articles/178219.htmlhttp://www.tkk7.com/supercrsky/comments/178219.htmlhttp://www.tkk7.com/supercrsky/articles/178219.html#Feedback0http://www.tkk7.com/supercrsky/comments/commentRss/178219.htmlhttp://www.tkk7.com/supercrsky/services/trackbacks/178219.html
<!-- 鍒楄〃緇勪歡瀵煎嚭榪囨護鍣?nbsp;-->
    
<filter>
        
<filter-name>eXtremeExport</filter-name>
        
<filter-class>
            org.extremecomponents.table.filter.ExportFilter
        
</filter-class>
    
</filter>
    
<filter-mapping>
        
<filter-name>eXtremeExport</filter-name>
        
<url-pattern>*.do</url-pattern>
    
</filter-mapping>
    
<!-- 钁楀悕 Character Encoding filter -->
    
<filter>
        
<filter-name>encodingFilter</filter-name>
        
<filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        
</filter-class>
        
<init-param>
            
<param-name>encoding</param-name>
            
<param-value>GBK</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>encodingFilter</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>

鐪嬩笉鍑烘湁浠涔堥棶棰?鍙綋鎴戞彃鍏ユ祴璇曟暟鎹椂鍏ㄦ槸涔辯爜.
鏁版嵁搴撴湰韜槸娌℃湁闂鐨?

鍚庢潵緇堜簬鎵懼埌浜嗚В鍐崇殑鏂規硶,鍘熷垱鍒楄〃緇勪歡鐨刦ilter瀵?br /> CharacterEncodingFilter鐨勮繃婊ゆ湁褰卞搷.璋冩暣涓涓嬮『搴忓氨琛屼簡.
<!-- 钁楀悕 Character Encoding filter -->
    
<filter>
        
<filter-name>encodingFilter</filter-name>
        
<filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        
</filter-class>
        
<init-param>
            
<param-name>encoding</param-name>
            
<param-value>GBK</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>encodingFilter</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
    
<!-- 鍒楄〃緇勪歡瀵煎嚭榪囨護鍣?nbsp;-->
    
<filter>
        
<filter-name>eXtremeExport</filter-name>
        
<filter-class>
            org.extremecomponents.table.filter.ExportFilter
        
</filter-class>
    
</filter>
    
<filter-mapping>
        
<filter-name>eXtremeExport</filter-name>
        
<url-pattern>*.do</url-pattern>
    
</filter-mapping>

璋冩暣鍚嶤haracterEncodingFilter琛ㄧ幇鑹ソ,涓鍒囨甯?灝變笉浼氬啀鍑烘潵
涔辯爜鐨勯棶棰樹簡.

]]>
Spring鍙戦侀偖浠剁殑綆鍗曚緥瀛?/title><link>http://www.tkk7.com/supercrsky/articles/174712.html</link><dc:creator>銆呬笂鍠勮嫢姘淬?/dc:creator><author>銆呬笂鍠勮嫢姘淬?/author><pubDate>Fri, 11 Jan 2008 12:32:00 GMT</pubDate><guid>http://www.tkk7.com/supercrsky/articles/174712.html</guid><wfw:comment>http://www.tkk7.com/supercrsky/comments/174712.html</wfw:comment><comments>http://www.tkk7.com/supercrsky/articles/174712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/supercrsky/comments/commentRss/174712.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/supercrsky/services/trackbacks/174712.html</trackback:ping><description><![CDATA[娉ㄦ剰鍦ㄥ仛姝や緥鍓嶇‘璁や綘宸茬粡鍔犲叆浜?br /> spring-misc鐩稿叧鍖?br /> 浠ュ強mail.jar,activation.jar.<br /> 濡傛病鏈夊彲鍒版垜鐨勭綉鐩樹笅杞?<br /> bean.xml:<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff"><?</span><span style="color: #ff00ff">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff">?></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff"><</span><span style="color: #800000">beans<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans"</span><span style="color: #ff0000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />    xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />    xsi:schemaLocation</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="mailSender"</span><span style="color: #ff0000"> class</span><span style="color: #0000ff">="org.springframework.mail.javamail.JavaMailSenderImpl"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #008000"><!--</span><span style="color: #008000"> mail鎻愪緵鍟?nbsp;</span><span style="color: #008000">--></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="host"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">value</span><span style="color: #0000ff">></span><span style="color: #000000">smtp.163.com</span><span style="color: #0000ff"></</span><span style="color: #800000">value</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">property</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javaMailProperties"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">props</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />                </span><span style="color: #008000"><!--</span><span style="color: #008000"> 鐢ㄦ埛璁よ瘉 </span><span style="color: #008000">--></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />                </span><span style="color: #0000ff"><</span><span style="color: #800000">prop </span><span style="color: #ff0000">key</span><span style="color: #0000ff">="mail.smtp.auth"</span><span style="color: #0000ff">></span><span style="color: #000000">true</span><span style="color: #0000ff"></</span><span style="color: #800000">prop</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />                </span><span style="color: #0000ff"><</span><span style="color: #800000">prop </span><span style="color: #ff0000">key</span><span style="color: #0000ff">="mail.smtp.timeout"</span><span style="color: #0000ff">></span><span style="color: #000000">25000</span><span style="color: #0000ff"></</span><span style="color: #800000">prop</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #0000ff"></</span><span style="color: #800000">props</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">property</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #008000"><!--</span><span style="color: #008000"> 鐢ㄦ埛鍚?nbsp;</span><span style="color: #008000">--></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="username"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">value</span><span style="color: #0000ff">></span><span style="color: #000000">78688287</span><span style="color: #0000ff"></</span><span style="color: #800000">value</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">property</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #008000"><!--</span><span style="color: #008000"> 瀵嗙爜 </span><span style="color: #008000">--></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="password"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">value</span><span style="color: #0000ff">></span><span style="color: #000000">******</span><span style="color: #0000ff"></</span><span style="color: #800000">value</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">property</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff"></</span><span style="color: #800000">beans</span><span style="color: #0000ff">></span></div> <br /> MailTest.java:<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">package</span><span style="color: #000000"> com;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> org.springframework.context.ApplicationContext;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> org.springframework.context.support.FileSystemXmlApplicationContext;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> org.springframework.mail.MailSender;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> org.springframework.mail.SimpleMailMessage;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> MailTest<br /> <img id="Codehighlighter1_263_799_Open_Image" onclick="this.style.display='none'; Codehighlighter1_263_799_Open_Text.style.display='none'; Codehighlighter1_263_799_Closed_Image.style.display='inline'; Codehighlighter1_263_799_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_263_799_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_263_799_Closed_Text.style.display='none'; Codehighlighter1_263_799_Open_Image.style.display='inline'; Codehighlighter1_263_799_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /></span><span id="Codehighlighter1_263_799_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_263_799_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args)<br /> <img id="Codehighlighter1_307_796_Open_Image" onclick="this.style.display='none'; Codehighlighter1_307_796_Open_Text.style.display='none'; Codehighlighter1_307_796_Closed_Image.style.display='inline'; Codehighlighter1_307_796_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_307_796_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_307_796_Closed_Text.style.display='none'; Codehighlighter1_307_796_Open_Image.style.display='inline'; Codehighlighter1_307_796_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />    </span><span id="Codehighlighter1_307_796_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_307_796_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">寰楀埌spring鐨刢ontext瀵硅薄</span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        ApplicationContext ctx </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> FileSystemXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">/src/com/bean.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">mail鎻愪緵鑰?/span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        MailSender sender </span><span style="color: #000000">=</span><span style="color: #000000"> (MailSender) ctx.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">mailSender</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鍒涘緩涓涓畝鍗昺ail娑堟伅瀵硅薄</span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        SimpleMailMessage smm </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> SimpleMailMessage();<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鏀朵歡浜?/span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        smm.setTo(</span><span style="color: #000000">"</span><span style="color: #000000">zdw@live.cn</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鍙戜歡浜哄湴鍧</span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        smm.setFrom(</span><span style="color: #000000">"</span><span style="color: #000000">78688287@163.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鏍囬</span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        smm.setSubject(</span><span style="color: #000000">"</span><span style="color: #000000">test</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鍐呭</span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        smm.setText(</span><span style="color: #000000">"</span><span style="color: #000000">榪欐槸鍏充簬Spring Mail鎶借薄灞傜殑綆鍗曟祴璇?/span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鍙戦?/span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        sender.send(smm);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #008000">//</span><span style="color: #008000">鎻愮ず淇℃伅</span><span style="color: #008000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">        System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Send Ok!!</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> 緇忔祴璇曚竴鍒囨甯? <img src ="http://www.tkk7.com/supercrsky/aggbug/174712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/supercrsky/" target="_blank">銆呬笂鍠勮嫢姘淬?/a> 2008-01-11 20:32 <a href="http://www.tkk7.com/supercrsky/articles/174712.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎴戠殑絎竴涓猘spectJ紼嬪簭http://www.tkk7.com/supercrsky/articles/174381.html銆呬笂鍠勮嫢姘淬?/dc:creator>銆呬笂鍠勮嫢姘淬?/author>Thu, 10 Jan 2008 10:04:00 GMThttp://www.tkk7.com/supercrsky/articles/174381.htmlhttp://www.tkk7.com/supercrsky/comments/174381.htmlhttp://www.tkk7.com/supercrsky/articles/174381.html#Feedback0http://www.tkk7.com/supercrsky/comments/commentRss/174381.htmlhttp://www.tkk7.com/supercrsky/services/trackbacks/174381.html
package com;

public class MyClass
{
    
public void foo(int age, String name)
    
{
        System.out.println(
"Inside foo(int,String)");
    }


    
public static void main(String[] args)
    
{
        MyClass myClass 
= new MyClass();
        myClass.foo(
1"zdw");
    }


}

HelloWorld.aj:
package com;

public aspect HelloWorld
{
    
//鍒囧叆鐐?/span>
    pointcut callPointcut() : call(void MyClass.foo(int,String));
    
//鍓嶇疆閫氱煡
    before() : callPointcut()
    
{
        System.out.println(
"Hello World");
        System.out.println(
"In the advice attached to the call pointcut");
    }

}
    


]]>
浣跨敤Spring榪涜闈㈠悜鍒囬潰緙栫▼錛圓OP錛?/title><link>http://www.tkk7.com/supercrsky/articles/174368.html</link><dc:creator>銆呬笂鍠勮嫢姘淬?/dc:creator><author>銆呬笂鍠勮嫢姘淬?/author><pubDate>Thu, 10 Jan 2008 09:40:00 GMT</pubDate><guid>http://www.tkk7.com/supercrsky/articles/174368.html</guid><wfw:comment>http://www.tkk7.com/supercrsky/comments/174368.html</wfw:comment><comments>http://www.tkk7.com/supercrsky/articles/174368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/supercrsky/comments/commentRss/174368.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/supercrsky/services/trackbacks/174368.html</trackback:ping><description><![CDATA[     鎽樿: 綆浠?闈㈠悜鍒囬潰緙栫▼錛圓OP錛夋彁渚涘彟澶栦竴縐嶈搴︽潵鎬濊冪▼搴忕粨鏋勶紝閫氳繃榪欑鏂瑰紡寮ヨˉ浜嗛潰鍚戝璞$紪紼嬶紙OOP錛夌殑涓嶈凍銆?闄や簡綾伙紙classes錛変互澶栵紝AOP鎻愪緵浜?鍒囬潰銆傚垏闈㈠鍏蟲敞鐐硅繘琛屾ā鍧楀寲錛屼緥濡傛í鍒囧涓被鍨嬪拰瀵硅薄鐨勪簨鍔$鐞嗐?錛堣繖浜涘叧娉ㄧ偣鏈閫氬父縐頒綔 妯垏錛坈rosscutting錛?鍏蟲敞鐐廣傦級 Spring鐨勪竴涓叧閿殑緇勪歡灝辨槸 AOP妗嗘灦銆?灝界濡傛錛孲pring IoC瀹瑰櫒騫朵笉渚濊禆浜嶢OP錛岃繖...  <a href='http://www.tkk7.com/supercrsky/articles/174368.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/supercrsky/aggbug/174368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/supercrsky/" target="_blank">銆呬笂鍠勮嫢姘淬?/a> 2008-01-10 17:40 <a href="http://www.tkk7.com/supercrsky/articles/174368.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring AOP鍒濇帰http://www.tkk7.com/supercrsky/articles/171909.html銆呬笂鍠勮嫢姘淬?/dc:creator>銆呬笂鍠勮嫢姘淬?/author>Mon, 31 Dec 2007 13:48:00 GMThttp://www.tkk7.com/supercrsky/articles/171909.htmlhttp://www.tkk7.com/supercrsky/comments/171909.htmlhttp://www.tkk7.com/supercrsky/articles/171909.html#Feedback0http://www.tkk7.com/supercrsky/comments/commentRss/171909.htmlhttp://www.tkk7.com/supercrsky/services/trackbacks/171909.html AOP姝e湪鎴愪負杞歡寮鍙戠殑涓嬩竴涓湥鏉備嬌鐢ˋOP錛屼綘鍙互灝嗗鐞哸spect鐨勪唬鐮佹敞鍏ヤ富紼嬪簭錛岄氬父涓葷▼搴忕殑涓昏鐩殑騫朵笉鍦ㄤ簬澶勭悊榪欎簺aspect銆侫OP鍙互闃叉浠g爜娣蜂貢銆?
涓轟簡鐞嗚ВAOP濡備綍鍋氬埌榪欑偣錛岃冭檻涓涓嬭鏃ュ織鐨勫伐浣溿傛棩蹇楁湰韜笉澶彲鑳芥槸浣犲紑鍙戠殑涓葷▼搴忕殑涓昏浠誨姟銆傚鏋滆兘灝?#8220;涓嶅彲瑙佺殑”銆侀氱敤鐨勬棩蹇椾唬鐮佹敞鍏ヤ富紼嬪簭涓紝閭h澶氬ソ鍟娿侫OP鍙互甯姪浣犲仛鍒般?
Spring framework鏄緢鏈夊墠閫旂殑AOP鎶鏈備綔涓轟竴縐嶉潪渚電暐鎬х殑錛岃交鍨嬬殑AOP framework錛屼綘鏃犻渶浣跨敤棰勭紪璇戝櫒鎴栧叾浠栫殑鍏冩爣絳撅紝渚垮彲浠ュ湪Java紼嬪簭涓嬌鐢ㄥ畠銆傝繖鎰忓懗鐫寮鍙戝洟闃熼噷鍙渶涓浜鴻瀵逛粯AOP framework錛屽叾浠栦漢榪樻槸璞″線甯鎬竴鏍風紪紼嬨?
AOP鏄緢澶氱洿瑙夐毦浠ョ悊瑙g殑鏈鐨勬牴婧愩傚垢榪愮殑鏄紝浣犲彧瑕佺悊瑙d笁涓蹇碉紝灝卞彲浠ョ紪鍐橝OP妯″潡銆傝繖涓変釜姒傚康鏄細advice錛宲ointcut鍜?advisor銆俛dvice鏄綘鎯沖悜鍒殑紼嬪簭鍐呴儴涓嶅悓鐨勫湴鏂規敞鍏ョ殑浠g爜銆俻ointcut瀹氫箟浜嗛渶瑕佹敞鍏dvice鐨勪綅緗紝閫氬父鏄煇涓壒瀹氱殑綾葷殑涓涓?public鏂規硶銆俛dvisor鏄痯ointcut鍜宎dvice鐨勮閰嶅櫒錛屾槸灝哸dvice娉ㄥ叆涓葷▼搴忎腑棰勫畾涔変綅緗殑浠g爜銆?

鏃㈢劧鎴戜滑鐭ラ亾浜嗛渶瑕佷嬌鐢╝dvisor鍚戜富瑕佷唬鐮佷腑娉ㄥ叆“涓嶅彲瑙佺殑”advice錛岃鎴戜滑瀹炵幇涓涓猄pring AOP鐨勪緥瀛愩傚湪榪欎釜渚嬪瓙涓紝鎴戜滑灝嗗疄鐜頒竴涓猙efore advice錛岃繖鎰忓懗鐫advice鐨勪唬鐮佸湪琚皟鐢ㄧ殑public鏂規硶寮濮嬪墠琚墽琛屻備互涓嬫槸榪欎釜before advice鐨勫疄鐜頒唬鐮侊細

package com.company.springaop.test; 

import java.lang.reflect.Method; 
import org.springframework.aop.MethodBeforeAdvice; 

public class TestBeforeAdvice implements MethodBeforeAdvice 

  
public void before(Method m, Object[] args, Object target) 
  
throws Throwable 
    System.out.println(
"Hello world! (by " 
        
+ this.getClass().getName() 
        
+ ")"); 
  }
 
}
 


鎺ュ彛MethodBeforeAdvice鍙湁涓涓柟娉昩efore闇瑕佸疄鐜幫紝瀹冨畾涔変簡advice鐨勫疄鐜般俠efore鏂規硶鍏辯敤涓変釜鍙傛暟錛屽畠浠彁渚涗簡鐩稿綋涓板瘜鐨勪俊鎭傚弬鏁癕ethod m鏄痑dvice寮濮嬪悗鎵ц鐨勬柟娉曘傛柟娉曞悕縐板彲浠ョ敤浣滃垽鏂槸鍚︽墽琛屼唬鐮佺殑鏉′歡銆侽bject[] args鏄紶緇欒璋冪敤鐨刾ublic鏂規硶鐨勫弬鏁版暟緇勩傚綋闇瑕佽鏃ュ織鏃訛紝鍙傛暟args鍜岃鎵ц鏂規硶鐨勫悕縐幫紝閮芥槸闈炲父鏈夌敤鐨勪俊鎭備綘涔熷彲浠ユ敼鍙樹紶緇檓鐨勫弬鏁幫紝浣嗚灝忓績浣跨敤榪欎釜鍔熻兘錛涚紪鍐欐渶鍒濅富紼嬪簭鐨勭▼搴忓憳騫朵笉鐭ラ亾涓葷▼搴忓彲鑳戒細鍜屼紶鍏ュ弬鏁扮殑鍙戠敓鍐茬獊銆侽bject target鏄墽琛屾柟娉昺瀵硅薄鐨勫紩鐢ㄣ?

鍦ㄤ笅闈㈢殑BeanImpl綾諱腑錛屾瘡涓猵ublic鏂規硶璋冪敤鍓嶏紝閮戒細鎵цadvice錛?

package com.company.springaop.test; 

public class BeanImpl implements Bean 

  
public void theMethod() 
    System.out.println(
this.getClass().getName() 
        
+ "." + new Exception().getStackTrace()[0].getMethodName() 
        
+ "()" 
        
+ " says HELLO!"); 
  }
 
}


綾籅eanImpl瀹炵幇浜嗕笅闈㈢殑鎺ュ彛Bean錛?

package com.company.springaop.test; 

public interface Bean 
  
public void theMethod(); 
}



铏界劧涓嶆槸蹇呴』浣跨敤鎺ュ彛錛屼絾闈㈠悜鎺ュ彛鑰屼笉鏄潰鍚戝疄鐜扮紪紼嬫槸鑹ソ鐨勭紪紼嬪疄璺碉紝Spring涔熼紦鍔辮繖鏍峰仛銆?

pointcut鍜宎dvice閫氳繃閰嶇疆鏂囦歡鏉ュ疄鐜幫紝鍥犳錛屾帴涓嬫潵浣犲彧闇緙栧啓涓繪柟娉曠殑Java浠g爜錛?
package com.company.springaop.test; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.FileSystemXmlApplicationContext; 

public class Main 

  
public static void main(String[] args) 
    
//Read the configuration file 
    ApplicationContext ctx 
        
= new FileSystemXmlApplicationContext("springconfig.xml"); 

    
//Instantiate an object 
    Bean x = (Bean) ctx.getBean("bean"); 

    
//Execute the public method of the bean (the test) 
    x.theMethod(); 
  }
 
}



鎴戜滑浠庤鍏ュ拰澶勭悊閰嶇疆鏂囦歡寮濮嬶紝鎺ヤ笅鏉ラ┈涓婅鍒涘緩瀹冦傝繖涓厤緗枃浠跺皢浣滀負綺樺悎紼嬪簭涓嶅悓閮ㄥ垎鐨?#8220;鑳舵按”銆傝鍏ュ拰澶勭悊閰嶇疆鏂囦歡鍚庯紝鎴戜滑浼氬緱鍒頒竴涓垱寤哄伐鍘俢tx銆備換浣曚竴涓猄pring綆$悊鐨勫璞¢兘蹇呴』閫氳繃榪欎釜宸ュ巶鏉ュ垱寤恒傚璞¢氳繃宸ュ巶鍒涘緩鍚庝究鍙甯鎬嬌鐢ㄣ?

浠呬粎鐢ㄩ厤緗枃浠朵究鍙妸紼嬪簭鐨勬瘡涓閮ㄥ垎緇勮璧鋒潵銆?
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC  "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 

<beans> 
  
<!--CONFIG--> 
  
<bean id="bean" class="org.springframework.aop.framework.ProxyFactoryBean"> 
    
<property name="proxyInterfaces"> 
      
<value>com.company.springaop.test.Bean</value> 
    
</property> 
    
<property name="target"> 
      
<ref local="beanTarget"/> 
    
</property> 
    
<property name="interceptorNames"> 
      
<list> 
        
<value>theAdvisor</value> 
      
</list> 
    
</property> 
  
</bean> 

  
<!--CLASS--> 
  
<bean id="beanTarget" class="com.company.springaop.test.BeanImpl"/> 

  
<!--ADVISOR--> 
  
<!--Note: An advisor assembles pointcut and advice--> 
  
<bean id="theAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> 
    
<property name="advice"> 
      
<ref local="theBeforeAdvice"/> 
    
</property> 
    
<property name="pattern"> 
      
<value>com\.company\.springaop\.test\.Bean\.theMethod</value> 
    
</property> 
  
</bean> 

  
<!--ADVICE--> 
  
<bean id="theBeforeAdvice" class="com.company.springaop.test.TestBeforeAdvice"/> 
</beans> 


鍥涗釜bean瀹氫箟鐨勬搴忓茍涓嶉噸瑕併傛垜浠幇鍦ㄦ湁浜嗕竴涓猘dvice錛屼竴涓寘鍚簡姝e垯琛ㄨ揪寮弍ointcut鐨刟dvisor錛屼竴涓富紼嬪簭綾誨拰涓涓厤緗ソ鐨勬帴鍙o紝閫氳繃宸ュ巶ctx錛岃繖涓帴鍙h繑鍥炶嚜宸辨湰韜疄鐜扮殑涓涓紩鐢ㄣ?

BeanImpl鍜孴estBeforeAdvice閮芥槸鐩存帴閰嶇疆銆傛垜浠敤涓涓敮涓鐨処D鍒涘緩涓涓猙ean鍏冪礌錛屽茍鎸囧畾浜嗕竴涓疄鐜扮被銆傝繖灝辨槸鍏ㄩ儴鐨勫伐浣溿?

advisor閫氳繃Spring framework鎻愪緵鐨勪竴涓猂egexMethodPointcutAdvisor綾繪潵瀹炵幇銆傛垜浠敤advisor鐨勪竴涓睘鎬ф潵鎸囧畾瀹冩墍闇鐨?advice-bean銆傜浜屼釜灞炴у垯鐢ㄦ鍒欒〃杈懼紡瀹氫箟浜唒ointcut錛岀‘淇濊壇濂界殑鎬ц兘鍜屾槗璇繪с?

鏈鍚庨厤緗殑鏄痓ean錛屽畠鍙互閫氳繃涓涓伐鍘傛潵鍒涘緩銆俠ean鐨勫畾涔夌湅璧鋒潵姣斿疄闄呬笂瑕佸鏉傘俠ean鏄疨roxyFactoryBean鐨勪竴涓疄鐜幫紝瀹冩槸Spring framework鐨勪竴閮ㄥ垎銆傝繖涓猙ean鐨勮涓洪氳繃涓涓嬬殑涓変釜灞炴ф潵瀹氫箟錛?


  • 灞炴roxyInterface瀹氫箟浜嗘帴鍙g被銆?
  • 灞炴arget鎸囧悜鏈湴閰嶇疆鐨勪竴涓猙ean錛岃繖涓猙ean榪斿洖涓涓帴鍙g殑瀹炵幇銆?
  • 灞炴nterceptorNames鏄敮涓鍏佽瀹氫箟涓涓煎垪琛ㄧ殑灞炴с傝繖涓垪琛ㄥ寘鍚墍鏈夐渶瑕佸湪beanTarget涓婃墽琛岀殑advisor銆傛敞鎰忥紝advisor鍒楄〃鐨勬搴忔槸闈炲父閲嶈鐨勩?


Spring宸ュ叿

铏界劧浣犲彲浠ユ墜宸ヤ慨鏀笰nt鏋勫緩鑴氭湰錛屼絾浣跨敤SpringUI錛堣瘧娉細SpringUI鐜板湪鏄疭pring framework鐨勪竴閮ㄥ垎錛屽茍鏀瑰悕涓簊pring-ide錛夛紝浣跨敤Spring AOP鍙樺緱寰堢畝鍗曪紝鍙鐐圭偣榧犳爣鍗沖彲銆備綘鍙互鎶奡pringUI瀹夎鎴怑clipse鐨勪竴涓猵lug-in銆傜劧鍚庯紝浣犲彧闇鍦ㄤ綘鐨刾roject涓婂彸鍑婚紶鏍囷紝騫墮夋嫨“add Spring Project Nature”銆傚湪project灞炴т腑錛屼綘鍙互鍦?#8220;Spring Project”涓嬫坊鍔燬pring閰嶇疆鏂囦歡銆傚湪緙栬瘧鍓嶆妸涓嬮潰鐨勭被搴撳姞鍏roject錛歛opalliance.jar錛宑ommons- logging.jar錛宩akarta-oro-2.0.7.jar鍜宻pring.jar銆傝繍琛岀▼搴忔椂浣犱細鐪嬪埌涓嬮潰鐨勪俊鎭細

 (logging information) 
Hello world! (by com.company.springaop.test.TestBeforeAdvice) 
com.company.springaop.test.BeanImpl.theMethod() says HELLO! 



浼樼偣鍜岀己鐐?/span>

Spring姣旇搗鍏朵粬鐨刦ramework鏇存湁浼樺娍錛屽洜涓洪櫎浜咥OP浠ュ錛屽畠鎻愪緵浜嗘洿澶氬埆鐨勫姛鑳姐備綔涓轟竴涓交鍨媐ramework錛屽畠鍦↗2EE 涓嶅悓鐨勯儴鍒嗛兘鍙互鍙戞尌浣滅敤銆傚洜姝わ紝鍗充嬌涓嶆兂浣跨敤Spring AOP錛屼綘鍙兘榪樻槸鎯充嬌鐢⊿pring銆傚彟涓涓紭鐐規槸錛孲pring騫朵笉瑕佹眰寮鍙戝洟闃熸墍鏈夌殑浜哄憳閮戒細鐢ㄥ畠銆傚涔燬pring搴旇浠嶴pring reference鐨勭涓欏靛紑濮嬨傝浜嗘湰鏂囧悗錛屼綘搴旇鍙互鏇村ソ鍦扮悊瑙pring reference浜嗐係pring鍞竴鐨勭己鐐規槸緙轟箯鏇村鐨勬枃。锛屼絾瀹冪殑mailing list鏄釜寰堝ソ鐨勮ˉ鍏咃紝鑰屼笖浼氫笉鏂湴鍑虹幇鏇村鐨勬枃。銆?/span>
 


]]>
鍙嶅悜鎺у埗鍜岄潰鍚戝垏闈㈢紪紼嬪湪Spring鐨勫簲鐢?/title><link>http://www.tkk7.com/supercrsky/articles/171903.html</link><dc:creator>銆呬笂鍠勮嫢姘淬?/dc:creator><author>銆呬笂鍠勮嫢姘淬?/author><pubDate>Mon, 31 Dec 2007 13:40:00 GMT</pubDate><guid>http://www.tkk7.com/supercrsky/articles/171903.html</guid><wfw:comment>http://www.tkk7.com/supercrsky/comments/171903.html</wfw:comment><comments>http://www.tkk7.com/supercrsky/articles/171903.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/supercrsky/comments/commentRss/171903.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/supercrsky/services/trackbacks/171903.html</trackback:ping><description><![CDATA[<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><strong>寮曡█</strong> <br /> <br /> 銆銆鍦↗2EE鐨勬暣涓彂灞曞巻紼嬩腑錛岀幇鍦ㄦ鏄竴涓潪甯告椂鍒匯備粠寰堝鏂歸潰鏉ヨ錛孞2EE閮芥槸涓涓紵澶х殑鎴愬姛錛氬畠鎴愬姛鍦板湪浠庡墠娌℃湁鏍囧噯鐨勫湴鏂瑰緩绔嬩簡鏍囧噯錛涘ぇ澶ф彁鍗囦簡浼佷笟綰ц蔣浠剁殑寮鏀劇▼搴︼紝騫朵笖寰楀埌浜嗘暣涓涓氬拰寮鍙戣呯殑騫挎硾璁ゅ彲銆傜劧鑰岋紝J2EE鍦ㄤ竴浜涙柟闈㈠凡緇忓紑濮嬫崏瑗熻鑲樸侸2EE搴旂敤寮鍙戠殑鎴愭湰閫氬父寰堥珮銆侸2EE搴旂敤欏圭洰鑷沖皯鍜屼粠鍓嶇殑闈濲2EE欏圭洰涓鏍峰鏄撳け璐モ斺斿鏋滀笉鏄洿瀹規槗澶辮觸鐨勮瘽銆傝繖鏍風殑澶辮觸鐜囬珮寰楄浜洪毦浠ユ帴鍙椼傚湪榪欐牱鐨勫け璐ョ巼涔嬩笅錛岃蔣浠跺紑鍙戝嚑涔庡彉鎴愪簡紕拌繍姘斻傝屽湪J2EE閬亣澶辮觸鐨勫満鏅腑錛孍JB閫氬父閮芥壆婕旂潃閲嶈鐨勮鑹層傚洜姝わ紝J2EE紺劇兢涓嶆柇鍦板悜鐫鏇寸畝鍗曠殑瑙e喅鏂規銆佹洿灝戜嬌鐢‥JB鐨勬柟鍚戝彂灞?sup>[1]</sup>銆傜劧鑰岋紝姣忎釜搴旂敤紼嬪簭閮介渶瑕佷竴浜涘熀紜璁炬柦錛屾嫆緇濅嬌鐢‥JB騫朵笉鎰忓懗鐫鎷掔粷EJB鎵閲囩敤鐨勫熀紜璁炬柦瑙e喅鏂規銆傞偅涔堬紝濡備綍鍒╃敤鐜版湁鐨勬鏋舵潵鎻愪緵榪欎簺鍩虹璁炬柦鏈嶅姟鍛紝浼撮殢鐫榪欎釜闂鐨勬彁鍑猴紝涓涓交閲忕駭鐨凧2EE瑙e喅鏂規鍑虹幇浜嗭紝榪欏氨鏄疭pring Framework銆?br /> <br /> 銆銆Spring鏄負綆鍖栦紒涓氱駭緋葷粺寮鍙戣岃癁鐢熺殑錛孲pring妗嗘灦涓篔2EE搴旂敤甯歌鐨勯棶棰樻彁渚涗簡綆鍗曘佹湁鏁堢殑瑙e喅鏂規錛屼嬌鐢⊿pring錛屼綘鍙互鐢ㄧ畝鍗曠殑POJO(Plain Old Java Object)鏉ュ疄鐜伴偅浜涗互鍓嶅彧鏈塃JB鎵嶈兘瀹炵幇鐨勫姛鑳姐傝繖鏍蜂笉鍙槸鑳界畝鍖栨湇鍔″櫒绔紑鍙戯紝浠諱綍Java緋葷粺寮鍙戦兘鑳戒粠Spring鐨勭畝鍗曘佸彲嫻嬭瘯鍜屾澗鑰﹀悎鐗瑰緛涓彈鐩娿傚彲浠ョ畝鍗曠殑璇達紝Spring鏄竴涓交閲忕駭鐨勫弽鍚戞帶鍒訛紙IoC錛夊拰闈㈠悜鍒囬潰緙栫▼錛圓OP錛夊鍣ㄦ鏋?sup>[3]</sup>銆係pring IoC錛屽熷姪浜庝緷璧栨敞鍏ヨ璁℃ā寮忥紝浣垮緱寮鍙戣呬笉鐢ㄧ悊浼氬璞¤嚜韜殑鐢熷懡鍛ㄦ湡鍙婂叾鍏崇郴錛岃屼笖鑳藉鏀瑰杽寮鍙戣呭J2EE妯″紡鐨勪嬌鐢紱Spring AOP錛屽熷姪浜嶴pring瀹炵幇鐨勬嫤鎴櫒錛屽紑鍙戣呰兘澶熷疄鐜頒互澹版槑鐨勬柟寮忎嬌鐢ㄤ紒涓氱駭鏈嶅姟錛屾瘮濡傚畨鍏ㄦф湇鍔°佷簨鍔℃湇鍔$瓑銆係pring IoC鍜?Spring ; AOP緇勫悎錛屼竴璧峰艦鎴愪簡Spring錛岃繖鏍蜂竴涓湁鏈烘暣浣擄紝浣垮緱鏋勫緩杞婚噺綰х殑J2EE鏋舵瀯鎴愪負鍙兘錛岃屼笖浜嬪疄璇佹槑錛岄潪甯告湁鏁堛傛病鏈塖pring IoC鐨凷pring AOP鏄笉瀹屽杽鐨勶紝娌℃湁Spring AOP鐨凷pring IoC鏄笉鍋ュ.鐨勩傛湰鏂囨槸浠pring鏋舵瀯鐨勬垚鍔熺殑瀹為檯鍟嗗姟緋葷粺欏圭洰涓鴻儗鏅紝闃愯堪浜嗗弽鍚戞帶鍒跺師鐞嗗拰闈㈠悜鍒囬潰鐨勭紪紼嬫妧鏈湪Spring妗嗘灦涓殑搴旂敤錛屽悓鏃舵娊鍙栭傞噺浠g爜紺烘剰鍏蜂綋搴旂敤錛屽茍鍜屼紶緇熷紑鍙戞ā寮忚繘琛屽姣旓紝灞曠ず浜哠pring framework鐨勭畝鍗曪紝楂樻晥錛屽彲緇存姢絳変紭鐐廣?br /> <br /> 銆銆<strong>1銆丼pring IoC 1.1 鍙嶅悜鎺у埗鍘熺悊 </strong><br /> <br /> 銆銆鍙嶅悜鎺у埗鏄疭pring妗嗘灦鐨勬牳蹇冦備絾鏄紝鍙嶅悜鎺у埗鏄粈涔堟剰鎬濓紵鍒板簳鎺у埗鐨勪粈涔堟柟闈㈣鍙嶅悜浜嗗憿錛?004騫寸編鍥戒笓瀹禡artin Fowler鍙戣〃浜嗕竴綃囪鏂囥奍nversion of Control Containers and the Dependency Injection pattern銆嬮槓榪頒簡榪欎釜闂錛屼粬鎬葷粨璇存槸鑾峰緱渚濊禆瀵硅薄鐨勬柟寮忓弽鍚戜簡錛屾牴鎹繖涓惎紺猴紝浠栬繕涓哄弽鍚戞帶鍒舵彁鍑轟簡涓涓洿璐村垏鐨勫悕瀛楋細Dependency Injection(DI 渚濊禆娉ㄥ叆)銆?br /> <br /> 銆銆閫氬父錛屽簲鐢ㄤ唬鐮侀渶瑕佸憡鐭ュ鍣ㄦ垨妗嗘灦,璁╁畠浠壘鍒拌嚜韜墍闇瑕佺殑綾?鐒跺悗鍐嶇敱搴旂敤浠g爜鍒涘緩寰呬嬌鐢ㄧ殑瀵硅薄瀹炰緥銆傚洜姝わ紝搴旂敤浠g爜鍦ㄤ嬌鐢ㄥ疄渚嬩箣鍓嶏紝闇瑕佸垱寤哄璞″疄渚嬨傜劧鑰岋紝IoC妯″紡涓?鍒涘緩瀵硅薄瀹炰緥鐨勪換鍔′氦緇橧oC瀹瑰櫒鎴栨鏋?瀹炵幇浜咺oC璁捐妯″紡鐨勬鏋朵篃琚О涓篒oC瀹瑰櫒)錛屼嬌寰楀簲鐢ㄤ唬鐮佸彧闇瑕佺洿鎺ヤ嬌鐢ㄥ疄渚嬶紝榪欏氨鏄疘oC銆傜浉瀵笽oC 鑰岃█錛?#8220;渚濊禆娉ㄥ叆”鐨勭‘鏇村姞鍑嗙‘鐨勬弿榪頒簡榪欑璁捐鐞嗗康銆傛墍璋撲緷璧栨敞鍏ワ紝鍗崇粍浠朵箣闂寸殑渚濊禆鍏崇郴鐢卞鍣ㄥ湪榪愯鏈熷喅瀹氾紝褰㈣薄鐨勬潵璇達紝鍗崇敱瀹瑰櫒鍔ㄦ佺殑灝嗘煇縐嶄緷璧栧叧緋繪敞鍏ュ埌緇勪歡涔嬩腑銆?br /> <br /> 銆銆1.2 IoC鍦⊿pring涓殑瀹炵幇 <br /> <br /> 銆銆浠諱綍閲嶈鐨勭郴緇熼兘闇瑕佽嚦灝戜袱涓浉浜掑悎浣滅殑綾繪潵瀹屾垚涓氬姟閫昏緫銆傞氬父錛屾瘡涓璞¢兘瑕佽嚜宸辮礋璐e緱鍒板畠鐨勫悎浣滐紙渚濊禆錛夊璞°備綘浼氬彂鐜幫紝榪欐牱浼氬鑷翠唬鐮佽﹀悎搴﹂珮鑰屼笖闅句簬嫻嬭瘯銆備嬌鐢↖oC錛屽璞$殑渚濊禆閮芥槸鍦ㄥ璞″垱寤烘椂鐢辮礋璐e崗璋冪郴緇熶腑鍚勪釜瀵硅薄鐨勫閮ㄥ疄浣撴彁渚涚殑錛岃繖鏍蜂嬌杞歡緇勪歡鏉炬暎榪炴帴鎴愪負鍙兘銆備笅闈㈢ず鎰忎簡Spring IoC 搴旂敤錛屾楠ゅ涓嬶細<br /> <br /> 銆銆錛?錛夊畾涔堿ction鎺ュ彛錛屽茍涓哄叾瀹氫箟涓涓猠xecute鏂規硶錛屼互瀹屾垚鐩爣閫昏緫銆傚騫村墠錛孏oF鍦ㄣ奃esign Pattern錛欵lements of Reusable Object-Oriented Software銆嬩竴涔︿腑鎻愬嚭“Programming to an Interface錛宯ot an implementation”鐨勫師鍒欙紝榪欓噷棣栧厛灝嗕笟鍔″璞℃娊璞℃垚鎺ュ彛錛屾鏄負浜嗗疄鏂借繖涓師鍒欍?br /> <br /> 銆銆錛?錛夌被UpperAction瀹炵幇Action鎺ュ彛錛屽湪姝ょ被涓紝瀹氫箟涓涓猄tring鍨嬬殑鍩焟essage錛屽茍鎻愪緵鐩稿簲鐨剆etter鍜実etter鏂規硶錛屽疄鐜扮殑execute鏂規硶濡備笅錛?br /> <br /> </span></span> <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_35_84_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_84_Open_Text.style.display='none'; Codehighlighter1_35_84_Closed_Image.style.display='inline'; Codehighlighter1_35_84_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_35_84_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_35_84_Closed_Text.style.display='none'; Codehighlighter1_35_84_Open_Image.style.display='inline'; Codehighlighter1_35_84_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> String execute (String str) </span><span id="Codehighlighter1_35_84_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_35_84_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆</span><span style="color: #0000ff">return</span><span style="color: #000000"> (getMessage () </span><span style="color: #000000">+</span><span style="color: #000000"> str).toUpperCase () ;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span></div> <br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">銆銆錛?錛夌紪鍐橲pring閰嶇疆鏂囦歡錛坆ean.xml錛?br /> <br /> </span></span> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">錛渂eans錛?br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />錛渂ean id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">TheAction</span><span style="color: #000000">"</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">net.chen.spring.qs.UpperAction</span><span style="color: #000000">"</span><span style="color: #000000">錛?br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />錛減roperty name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">message</span><span style="color: #000000">"</span><span style="color: #000000">錛?br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />錛渧alue錛濰eLLo錛?/span><span style="color: #000000">/</span><span style="color: #000000">value錛?br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />錛?/span><span style="color: #000000">/</span><span style="color: #000000">property錛?br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />錛?/span><span style="color: #000000">/</span><span style="color: #000000">bean錛?br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />錛?/span><span style="color: #000000">/</span><span style="color: #000000">beans錛?/span></div> <br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">銆銆錛?錛夋祴璇曚唬鐮?br /> <br /> </span></span> <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_30_204_Open_Image" onclick="this.style.display='none'; Codehighlighter1_30_204_Open_Text.style.display='none'; Codehighlighter1_30_204_Closed_Image.style.display='inline'; Codehighlighter1_30_204_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_30_204_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_30_204_Closed_Text.style.display='none'; Codehighlighter1_30_204_Open_Image.style.display='inline'; Codehighlighter1_30_204_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> testQuickStart () </span><span id="Codehighlighter1_30_204_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_30_204_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆ApplicationContext ctx</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆FileSystemXmlApplicationContext (</span><span style="color: #000000">"</span><span style="color: #000000">bean.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆Action a</span><span style="color: #000000">=</span><span style="color: #000000"> (Action) ctx.getBean (</span><span style="color: #000000">"</span><span style="color: #000000">TheAction</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆System.out.println (a. execute (</span><span style="color: #000000">"</span><span style="color: #000000">Rod Johnson</span><span style="color: #000000">"</span><span style="color: #000000">));<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span></div> <br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">銆銆涓婇潰鐨勬祴璇曚唬鐮佷腑錛屾垜浠牴鎹?bean.xml"鍒涘緩浜嗕竴涓狝pplicationContext瀹炰緥錛屽茍浠庢瀹炰緥涓幏鍙栨垜浠墍闇鐨凙ction瀹炵幇錛岃繍琛屾祴璇曚唬鐮侊紝鎴戜滑鐪嬪埌鎺у埗鍙拌緭鍑猴細<br /> <br /> </span></span> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1"> <tbody> <tr> <td><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">……<br /> HELLO ROD JOHNSON</span></span></td> </tr> </tbody> </table> <br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">銆銆浠旂粏瑙傚療涓涓嬩笂闈㈢殑浠g爜錛屽彲浠ョ湅鍒幫細<br /> <br /> 銆銆錛?錛夋垜浠殑緇勪歡騫朵笉闇瑕佸疄鐜版鏋舵寚瀹氱殑鎺ュ彛錛屽洜姝ゅ彲浠ヨ交鏉劇殑灝嗙粍浠朵粠Spring涓劚紱伙紝鐢氳嚦涓嶉渶瑕佷換浣曚慨鏀癸紝榪欏湪鍩轟簬EJB妗嗘灦瀹炵幇鐨勫簲鐢ㄤ腑鏄毦浠ユ兂璞$殑銆?br /> <br /> 銆銆錛?錛夌粍浠墮棿鐨勪緷璧栧叧緋誨噺灝戯紝鏋佸ぇ鏀瑰杽浜嗕唬鐮佺殑鍙噸鐢ㄦс係pring鐨勪緷璧栨敞鍏ユ満鍒訛紝鍙互鍦ㄨ繍琛屾湡涓虹粍浠墮厤緗墍闇璧勬簮錛岃屾棤闇鍦ㄧ紪鍐欑粍浠朵唬鐮佹椂灝卞姞浠ユ寚瀹氾紝浠庤屽湪鐩稿綋紼嬪害涓婇檷浣庝簡緇勪歡涔嬮棿鐨勮﹀悎銆?br /> <br /> 銆銆Spring緇欐垜浠甫鏉ヤ簡濡傛榪欒埇鐨勫ソ澶勶紝閭d箞錛屽弽榪囨潵錛岃鎴戜滑璇曟兂涓涓嬶紝濡傛灉涓嶄嬌鐢⊿pring妗嗘灦錛屽洖鍒版垜浠紶緇熺殑緙栫爜妯″紡錛屾儏鍐典細鏄庢牱鍛紵<br /> <br /> 銆銆棣栧厛錛屾垜浠繀欏葷紪鍐欎竴涓厤緗枃浠惰鍙栫被錛屼互瀹炵幇Message灞炴х殑鍙厤緗寲銆?br /> <br /> 銆銆鍏舵錛屽緱鏈変竴涓狥actory妯″紡鐨勫疄鐜幫紝騫剁粨鍚堥厤緗枃浠剁殑璇誨啓瀹屾垚Action鐨勫姩鎬佸姞杞姐備簬鏄紝鎴戜滑瀹炵幇浜嗕竴涓狝ctionFactory鏉ュ疄鐜拌繖涓姛鑳斤細<br /> <br /> </span></span> <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_27_481_Open_Image" onclick="this.style.display='none'; Codehighlighter1_27_481_Open_Text.style.display='none'; Codehighlighter1_27_481_Closed_Image.style.display='inline'; Codehighlighter1_27_481_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_27_481_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_27_481_Closed_Text.style.display='none'; Codehighlighter1_27_481_Open_Image.style.display='inline'; Codehighlighter1_27_481_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> ActionFactory </span><span id="Codehighlighter1_27_481_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_27_481_Open_Text"><span style="color: #000000">{<br /> <img id="Codehighlighter1_81_480_Open_Image" onclick="this.style.display='none'; Codehighlighter1_81_480_Open_Text.style.display='none'; Codehighlighter1_81_480_Closed_Image.style.display='inline'; Codehighlighter1_81_480_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_81_480_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_81_480_Closed_Text.style.display='none'; Codehighlighter1_81_480_Open_Image.style.display='inline'; Codehighlighter1_81_480_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> Action getAction (String actionName) </span><span id="Codehighlighter1_81_480_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_81_480_Open_Text"><span style="color: #000000">{Properties pro </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Properties ();<br /> <img id="Codehighlighter1_123_436_Open_Image" onclick="this.style.display='none'; Codehighlighter1_123_436_Open_Text.style.display='none'; Codehighlighter1_123_436_Closed_Image.style.display='inline'; Codehighlighter1_123_436_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_123_436_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_123_436_Closed_Text.style.display='none'; Codehighlighter1_123_436_Open_Image.style.display='inline'; Codehighlighter1_123_436_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆</span><span style="color: #0000ff">try</span><span style="color: #000000"> </span><span id="Codehighlighter1_123_436_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_123_436_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆pro.load (</span><span style="color: #0000ff">new</span><span style="color: #000000"> FileInputStream (</span><span style="color: #000000">"</span><span style="color: #000000">config.properties</span><span style="color: #000000">"</span><span style="color: #000000">));<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆String actionImplName </span><span style="color: #000000">=</span><span style="color: #000000">(String)pro.get(actionName);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆String actionMessage </span><span style="color: #000000">=</span><span style="color: #000000">(String) pro.get (actionName</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">_msg</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆Object obj </span><span style="color: #000000">=</span><span style="color: #000000">Class.forName (actionImplName).newInstance ();<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆BeanUtils.setProperty(obj,</span><span style="color: #000000">"</span><span style="color: #000000">message</span><span style="color: #000000">"</span><span style="color: #000000">,actionMessage);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆</span><span style="color: #0000ff">return</span><span style="color: #000000"> (Action) obj;<br /> <img id="Codehighlighter1_470_478_Open_Image" onclick="this.style.display='none'; Codehighlighter1_470_478_Open_Text.style.display='none'; Codehighlighter1_470_478_Closed_Image.style.display='inline'; Codehighlighter1_470_478_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_470_478_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_470_478_Closed_Text.style.display='none'; Codehighlighter1_470_478_Open_Image.style.display='inline'; Codehighlighter1_470_478_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆}</span></span><span style="color: #000000"> </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (FileNotFoundException e) </span><span id="Codehighlighter1_470_478_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.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_470_478_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆銆……<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆}</span></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />}</span></span></div> </span><br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">銆銆閰嶇疆鏂囦歡鍒欓噰鐢╬roperties鏂囦歡褰㈠紡濡備笅鎵紺猴細<br /> <br /> </span></span> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1"> <tbody> <tr> <td><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">TheAction=net.chen.spring.qs.UpperAction<br /> TheAction_msg=HeLLo</span></span></td> </tr> </tbody> </table> <br /> <span style="font-family: Comic Sans MS">銆銆嫻嬭瘯浠g爜涔熶綔鐩稿簲淇敼銆傜幇鍦ㄤ笉璁哄疄鐜扮殑濂藉潖錛屾諱箣閫氳繃涓婇潰鏂板鐨勫琛屼唬鐮侊紝緇堜簬瀹炵幇浜嗙被浼肩殑鍔熻兘銆傚鏋滅幇鍦ㄦ湁浜嗕竴涓柊鐨勯渶姹傦紝榪欐牱榪欎釜ActionFactory姣忔閮芥柊寤轟竴涓被鐨勫疄渚嬶紝鏄劇劧榪欏緋葷粺鎬ц兘涓嶅埄錛岃冭檻鍒版垜浠殑涓や釜Action閮芥槸綰跨▼瀹夊叏鐨勶紝淇敼涓涓婣ctionFactory錛屼繚鎸佺郴緇熶腑鍙湁涓涓狝ction瀹炰緥渚涘叾瀹冪嚎紼嬭皟鐢ㄣ傚彟澶朅ction瀵硅薄鍒涘緩鍚庯紝闇瑕佸仛涓浜涘垵濮嬪寲宸ヤ綔銆備慨鏀逛竴涓婣ctionFactory錛屼嬌鍏跺湪鍒涘緩Action瀹炰緥涔嬪悗錛岄殢鍗沖氨璋冪敤Action.init鏂規硶鎵ц鍒濆鍖栥侫ction鐨勫鐞嗚繖鏍峰氨宸笉澶氫簡銆備笅闈㈡垜浠潵鐪嬬湅鍙﹀涓涓狥actory<br /> <br /> 銆銆……<br /> <br /> 銆銆寰寰榪欎簺緋葷粺寮鍙戜腑鏈甯歌鐨勯渶姹傦紝浼氬鑷存垜浠殑浠g爜榪呴熻啫鑳錛岃孲pring IoC鐨勫嚭鐜幫紝鍒欏ぇ澶х紦瑙d簡榪欐牱鐨勭獦澧冦傞氳繃浠ヤ笂瀹炰緥錛屽彲浠ョ湅鍑猴紝Spring IoC涓烘垜浠彁渚涗簡濡備笅鍑犳柟闈㈢殑浼樺娍錛?br /> <br /> 銆銆錛?錛夊簲鐢ㄧ粍浠朵笉闇瑕佸湪榪愯鏃跺鎵懼叾鍗忎綔鑰咃紝鍥犳鏇存槗浜庡紑鍙戝拰緙栧啓搴旂敤錛?br /> <br /> 銆銆錛?錛夌敱浜庡熷姪浜嶪oC瀹瑰櫒綆$悊緇勪歡鐨勪緷璧栧叧緋伙紝浣垮緱搴旂敤鐨勫崟鍏冩祴璇曞拰闆嗘垚嫻嬭瘯鏇村埄浜庡睍寮錛?br /> <br /> 銆銆錛?錛夐氬父錛屽湪鍊熷姪浜嶪oC瀹瑰櫒鍏崇郴涓氬姟瀵硅薄鐨勫墠鎻愪笅錛屽緢灝戦渶瑕佷嬌鐢ㄥ叿浣揑oC瀹瑰櫒鎻愪緵鐨凙PI錛岃繖浣垮緱闆嗘垚鐜版湁鐨勯仐鐣欏簲鐢ㄦ垚涓哄彲鑳姐?br /> <br /> 銆銆鍥犳錛岄氳繃浣跨敤IoC鑳藉闄嶄綆緇勪歡涔嬮棿鐨勮﹀悎搴︼紝鏈緇堬紝鑳藉鎻愰珮綾葷殑閲嶇敤鎬э紝鍒╀簬嫻嬭瘯錛岃屼笖鏇村埄浜庢暣涓駭鍝佹垨緋葷粺闆嗘垚鍜岄厤緗?br /> </span> <img src ="http://www.tkk7.com/supercrsky/aggbug/171903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/supercrsky/" target="_blank">銆呬笂鍠勮嫢姘淬?/a> 2007-12-31 21:40 <a href="http://www.tkk7.com/supercrsky/articles/171903.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>spring涓浣曞姞杞藉涓厤緗枃浠?/title><link>http://www.tkk7.com/supercrsky/articles/170441.html</link><dc:creator>銆呬笂鍠勮嫢姘淬?/dc:creator><author>銆呬笂鍠勮嫢姘淬?/author><pubDate>Wed, 26 Dec 2007 00:04:00 GMT</pubDate><guid>http://www.tkk7.com/supercrsky/articles/170441.html</guid><wfw:comment>http://www.tkk7.com/supercrsky/comments/170441.html</wfw:comment><comments>http://www.tkk7.com/supercrsky/articles/170441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/supercrsky/comments/commentRss/170441.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/supercrsky/services/trackbacks/170441.html</trackback:ping><description><![CDATA[<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">Spring鍔犺澆澶氫釜閰嶇疆鏂囦歡鐨勬柟寮?/span></span></p> <p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span id="ptvxxnl" class="STYLE1">1.絎竴縐嶏紝浣跨敤鏁扮粍</span><br /> 浠g爜<br /> </span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">ApplicationContext contex</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> ClassXmlApplicationContext(</span><span style="color: #0000ff">new</span><span style="color: #000000"> String[</span><span style="color: #000000">"</span><span style="color: #000000">a1.xml</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">a2.xml</span><span style="color: #000000">"</span><span style="color: #000000">]); </span></span></span></div> <p><span style="font-family: Comic Sans MS"><br /> </span> </p> <p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span id="pzjdfnl" class="STYLE1">2.絎簩縐嶏紝鍙敤閫氶厤絎?/span><br /> 浠g爜<br /> </span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">ApplicationContext contex</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> ClassXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">a*.xml</span><span style="color: #000000">"</span><span style="color: #000000">);</span></span></span></div> <p><br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">//浣嗘縐嶆柟娉曞彧瀵規枃浠剁郴緇熶腑鐨剎ml鏂囦歡鏈夋晥錛岄拡瀵筳ar鍖呬腑鐨勬棤鏁?<br /> </span></span></p> <p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span id="xzbvvdt" class="STYLE1">3.絎笁縐嶏紝寮曞叆</span><br /> 浠g爜<br /> </span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">ApplicationContext contex</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> ClassXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">a1.xml</span><span style="color: #000000">"</span></span></span><span style="color: #000000"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">); <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></span></span></div> <p><br /> <span style="font-family: Comic Sans MS"><span style="font-size: 12pt">//鍦╝1.xml涓?<br /> <br /> </span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000"><</span><span style="color: #0000ff">import</span><span style="color: #000000"> resource</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">a2.xml</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #008000">//</span></span></span></div> <p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">鎵цresource璺緞涓虹浉瀵筧1.xml鐨勮礬寰?</span></span></p> <img src ="http://www.tkk7.com/supercrsky/aggbug/170441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/supercrsky/" target="_blank">銆呬笂鍠勮嫢姘淬?/a> 2007-12-26 08:04 <a href="http://www.tkk7.com/supercrsky/articles/170441.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring AOP瀛︿範浣撲細http://www.tkk7.com/supercrsky/articles/164589.html銆呬笂鍠勮嫢姘淬?/dc:creator>銆呬笂鍠勮嫢姘淬?/author>Sun, 02 Dec 2007 01:03:00 GMThttp://www.tkk7.com/supercrsky/articles/164589.htmlhttp://www.tkk7.com/supercrsky/comments/164589.htmlhttp://www.tkk7.com/supercrsky/articles/164589.html#Feedback0http://www.tkk7.com/supercrsky/comments/commentRss/164589.htmlhttp://www.tkk7.com/supercrsky/services/trackbacks/164589.html


闇鏄庣‘鐨勫嚑涓蹇?
                                                  
1銆侀氱煡(Advice)錛氱敤浜庡憡鐭ョ郴緇熷皢鏈夊摢浜涙柊鐨勮涓恒?br /> 2銆佸垏鍏ョ偣(Pointcut):瀹氫箟浜嗛氱煡搴旇鍦ㄥ簲鐢ㄥ埌閭d簺榪炴帴鐐?br /> 3銆佺洰鏍囧璞?/span>(Target)錛氳閫氱煡鐨勫璞°?br /> 4銆?/span> 浠g悊(Proxy)錛氬皢閫氱煡搴旂敤鍒扮洰鏍囧璞″悗鍒涘緩鐨勫璞°?/span>

Spring鏈変袱縐嶄唬鐞嗗垱寤烘柟寮忥細

     1.濡傛灉鐩爣瀵硅薄瀹炵幇浜嗕竴涓垨澶氫釜鎺ュ彛鏆撮湶鐨勬柟娉曪紝Spring灝嗕嬌鐢?/span>JDK鐨?/span>java.lang.reflect.Proxy鍒涘緩浠g悊銆傝繖涓被璁?/span>Spring鍔ㄦ佷駭鐢熶竴涓柊鐨勭被錛屽畠瀹炵幇浜嗘墍闇鐨勬帴鍙o紝緇囧叆浜嗛氱煡錛屽茍涓斾唬鐞嗙洰鏍囩殑鎵鏈夎姹傘傦紙榪欑瘒涓昏浠嬬粛榪欎釜鏂瑰紡錛?/span>

2.濡傛灉鐩爣瀵硅薄娌℃湁瀹炵幇浠諱綍鎺ュ彛錛?span style="font-family: 'Courier New'">Spring浣跨敤CGLIB搴撶敓鎴愮洰鏍囧璞$殑瀛愮被銆傚湪鍒涘緩榪欎釜瀛愮被鐨勬椂鍊欙紝Spring灝嗛氱煡緇囧叆錛屽茍涓斿皢瀵圭洰鏍囧璞$殑璋冪敤濮旀墭緇欒繖涓瓙綾匯?/span>

 涓嬮潰浠ヤ竴涓疄渚嬭鏄?span style="font-family: 'Courier New'">Spring AOP鐨勫熀鏈紑鍙戞柟娉曪細

涓錛?/span>鍒涘緩閫氱煡

Spring榪炴帴鐐規ā鍨嬫槸寤虹珛鍦ㄦ柟娉曟嫤鎴笂錛岃繖鎰忓懗鐫浣犵紪鍐欑殑Spring閫氱煡浼氬湪鏂規硶璋冪敤鍛ㄥ洿鐨勫悇涓湴鏂圭粐鍏ョ郴緇熶腑銆?/span>

鍥?/span>1

    TestAopServiceAdvice瀹炵幇浜嗘帴鍙?/span>MethodBeforeAdvice(鍓嶇疆閫氱煡)錛屽茍瀹炵幇瀹冪殑鎯熶竴鐨勬柟娉?/span>before錛岃繖涓被灝卞彲浠ュ湪璋冪敤鐩爣瀵硅薄鍓嶈璋冪敤銆傚悓鏍風殑榪樻湁AfterReturningAdvice(鍚庣疆閫氱煡)錛?/span>MethodInterceptor(鐜粫閫氱煡)錛屽紓甯擱氱煡(ThrowsAdvice)錛屽紩鍏ラ氱煡絳夈?/span>

    鍦ㄨ繖涓柟娉曚腑鎴戜滑杈撳嚭浜嗕竴涓瓧絎︿覆TestAopServiceAdvice錛岀敤浜庨獙璇佽繖涓柟娉曟槸鍚﹀湪鐩爣瀵硅薄鍓嶈皟鐢ㄤ簡銆?/span>

娉ㄦ剰錛?/span>鎴戜滑鏃犳硶鏀瑰彉before鏂規硶涓殑鍙傛暟args鍜?/span>target涓殑鍊鹼紝args涓瓨鐨勬槸鍘熸潵瑕佷紶鍏ョ洰鏍囧璞$殑鍙橀噺錛?/span>target鍗蟲寚鐩爣瀵硅薄銆?/span>

 浜岋紟閰嶇疆Spring XML閰嶇疆鏂囦歡

瑕佸湪Spring涓疄鐜?/span>AOP錛屼竴鑸儏鍐典笅闇瑕侀厤緗?/span>4涓?/span>bean錛?/span>

1錛?/span>鐩爣瀵硅薄錛?/span>target錛?/span>

2錛?/span>閫氱煡(advice)

3錛?/span>鍒囧叆鐐?/span>(pointcut)

4錛?/span>浠g悊(proxy)

鍥?/span>2

鍒囧叆鐐瑰張鍒嗕負闈欐佸垏鍏ョ偣鍜屽姩鎬佸垏鍏ョ偣
1銆?/span> 闈欐佸垏鍏ョ偣鐨勬剰鎬濇槸閫氱煡鎬繪槸琚墽琛?/span>,
涔熸槸鏈甯哥敤鐨勪竴縐嶅垏鍏ョ偣銆?br /> 2銆?/span>   鍔ㄦ佸垏鍏ョ偣鏍規嵁榪愯鏃舵柟娉曠殑鍙傛暟鍊煎喅瀹氶氱煡鏄惁琚墽琛屻?/span>

鍦ㄥ浘2涓紝瀹氫箟浜嗕嬌鐢ㄤ簡涓涓?/span>Spring鎻愪緵鐨勯潤鎬佸垏鍏ョ偣

    NameMatchMethodPointAdvisor錛屽畠淇濊瘉浜嗗綋琚皟鐢ㄧ殑鏂規硶鐨勫悕瀛椾笌緇欏嚭鐨勬槧灝勫悕瀛楃浉鍖歸厤鐨勬椂鍊欙紝榪欎釜鍒囧叆鐐規墠鍖歸厤銆?/span>

   Spring鎻愪緵鐨勫彟涓涓潤鎬佸垏鍏ョ偣涓?/span>RegexpMethodPointcutAdvisor錛岃浣犲彲浠ュ埄鐢ㄦ鍒欒〃杈懼紡鏉ュ畾涔夊垏鍏ョ偣.

 浣跨敤ProxyBeanFactory鍙互鍒涘緩涓涓閫氱煡鐨勭被錛屽嵆浠g悊瀵硅薄銆傚畠鐨勬渶甯哥敤鐨?/span>浜?/span>涓帶鍒惰涓虹殑灞炴ф槸:
1銆?/span>proxyInterfaces
錛氫唬鐞嗗簲璇ュ疄鐜扮殑鎺ュ彛鍒楄〃
2銆?/span>interceptorNames錛氶渶瑕佸簲鐢ㄥ埌鐩爣瀵硅薄涓婄殑閫氱煡Bean鐨勫悕瀛椼傚彲浠ユ槸鎷︽埅鍣ㄣ?/span>Advisor鎴栧叾浠栭氱煡綾葷殑鍚嶅瓧銆?/span>

娉細鍦ㄧ敤瀹瑰櫒鐨?/span>getBean鏂規硶鏃訛紝搴旇鏄?/span>getBean(浠g悊綾葷殑鍚嶅瓧)錛岃屼笉鏄?/span>getBean(鐩爣瀵硅薄鐨勫悕瀛?/span>)錛屽惁鍒?/span>AOP鏃犳硶宸ヤ綔銆?/span>



]]>
Spring涓璪ean鐨勪綔鐢ㄥ煙http://www.tkk7.com/supercrsky/articles/162778.html銆呬笂鍠勮嫢姘淬?/dc:creator>銆呬笂鍠勮嫢姘淬?/author>Sat, 24 Nov 2007 00:55:00 GMThttp://www.tkk7.com/supercrsky/articles/162778.htmlhttp://www.tkk7.com/supercrsky/comments/162778.htmlhttp://www.tkk7.com/supercrsky/articles/162778.html#Feedback0http://www.tkk7.com/supercrsky/comments/commentRss/162778.htmlhttp://www.tkk7.com/supercrsky/services/trackbacks/162778.html濡備綍浣跨敤spring鐨勪綔鐢ㄥ煙錛?br /> <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
榪欓噷鐨?/span>scope灝辨槸鐢ㄦ潵閰嶇疆spring bean鐨勪綔鐢ㄥ煙錛屽畠鏍囪瘑bean鐨勪綔鐢ㄥ煙銆?/span>

     鍦?span>spring2.0涔嬪墠bean鍙湁2縐嶄綔鐢ㄥ煙鍗籌細singleton(鍗曚緥)銆乶on-singleton錛堜篃縐皃rototype錛? Spring2.0浠ュ悗錛屽鍔犱簡session銆乺equest銆乬lobal session涓夌涓撶敤浜嶹eb搴旂敤紼嬪簭涓婁笅鏂囩殑Bean銆傚洜姝わ紝榛樿鎯呭喌涓婼pring2.0鐜板湪鏈変簲縐嶇被鍨嬬殑Bean銆傚綋鐒訛紝Spring2.0瀵笲ean鐨勭被鍨嬬殑璁捐榪涜浜嗛噸鏋勶紝騫惰璁″嚭鐏墊椿鐨凚ean綾誨瀷鏀寔錛岀悊璁轟笂鍙互鏈夋棤鏁板縐嶇被鍨嬬殑Bean錛岀敤鎴峰彲浠ユ牴鎹嚜宸辯殑闇瑕侊紝澧炲姞鏂扮殑Bean綾誨瀷錛屾弧瓚沖疄闄呭簲鐢ㄩ渶姹傘?/span>
1銆乻ingleton浣滅敤鍩?br /> 褰撲竴涓?span>bean鐨?/span>浣滅敤鍩?/span>璁劇疆涓?span>singleton, 閭d箞Spring IOC瀹瑰櫒涓彧浼氬瓨鍦ㄤ竴涓叡浜殑bean瀹炰緥錛屽茍涓旀墍鏈夊bean鐨勮姹傦紝鍙id涓庤bean瀹氫箟鐩稿尮閰嶏紝鍒欏彧浼氳繑鍥瀊ean鐨勫悓涓瀹炰緥銆傛崲璦涔嬶紝褰撴妸涓涓猙ean瀹氫箟璁劇疆涓簊ingleton浣滅敤鍩熸椂錛孲pring IOC瀹瑰櫒鍙細鍒涘緩璇ean瀹氫箟鐨勫敮涓瀹炰緥銆傝繖涓崟涓瀹炰緥浼氳瀛樺偍鍒板崟渚嬬紦瀛橈紙singleton cache錛変腑錛屽茍涓旀墍鏈夐拡瀵硅bean鐨勫悗緇姹傚拰寮曠敤閮藉皢榪斿洖琚紦瀛樼殑瀵硅薄瀹炰緥錛岃繖閲岃娉ㄦ剰鐨勬槸singleton浣滅敤鍩熷拰GOF璁捐妯″紡涓殑鍗曚緥鏄畬鍏ㄤ笉鍚岀殑錛屽崟渚嬭璁℃ā寮忚〃紺轟竴涓狢lassLoader涓彧鏈変竴涓猚lass瀛樺湪錛岃岃繖閲岀殑singleton鍒欒〃紺轟竴涓鍣ㄥ搴斾竴涓猙ean錛屼篃灝辨槸璇村綋涓涓猙ean琚爣璇嗕負singleton鏃跺欙紝spring鐨処OC瀹瑰櫒涓彧浼氬瓨鍦ㄤ竴涓bean銆?/span>

閰嶇疆瀹炰緥錛?br /> <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/> 鎴栬?/span><bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>

2銆乸rototype     
prototype浣滅敤鍩熼儴緗茬殑bean錛屾瘡涓嬈¤姹傦紙灝嗗叾娉ㄥ叆鍒板彟涓涓猙ean涓紝鎴栬呬互紼嬪簭鐨勬柟寮忚皟鐢ㄥ鍣ㄧ殑getBean()鏂規硶錛夐兘浼氫駭鐢熶竴涓柊鐨刡ean瀹炰緥錛岀浉褰撲竴涓猲ew鐨勬搷浣滐紝瀵逛簬prototype浣滅敤鍩熺殑bean錛屾湁涓鐐歸潪甯擱噸瑕侊紝閭e氨鏄疭pring涓嶈兘瀵逛竴涓猵rototype bean鐨勬暣涓敓鍛藉懆鏈熻礋璐o紝瀹瑰櫒鍦ㄥ垵濮嬪寲銆侀厤緗佽楗版垨鑰呮槸瑁呴厤瀹屼竴涓?span>prototype瀹炰緥鍚庯紝灝嗗畠浜ょ粰瀹㈡埛绔紝闅忓悗灝卞璇rototype瀹炰緥涓嶉椈涓嶉棶浜嗐備笉綆′綍縐嶄綔鐢ㄥ煙錛屽鍣ㄩ兘浼氳皟鐢ㄦ墍鏈夊璞$殑鍒濆鍖栫敓鍛藉懆鏈熷洖璋冩柟娉曪紝鑰屽prototype鑰岃█錛屼換浣曢厤緗ソ鐨勬瀽鏋勭敓鍛藉懆鏈熷洖璋冩柟娉曢兘灝嗕笉浼氳璋冪敤
銆傛竻闄rototype浣滅敤鍩熺殑瀵硅薄騫墮噴鏀句換浣昿rototype bean鎵鎸佹湁鐨勬槀璐佃祫婧愶紝閮芥槸瀹㈡埛绔唬鐮佺殑鑱岃矗銆傦紙璁㏒pring瀹瑰櫒閲婃斁琚玸ingleton浣滅敤鍩焍ean鍗犵敤璧勬簮鐨勪竴縐嶅彲琛屾柟寮忔槸錛岄氳繃浣跨敤bean鐨勫悗緗鐞嗗櫒錛岃澶勭悊鍣ㄦ寔鏈夎琚竻闄ょ殑bean鐨勫紩鐢ㄣ傦級
閰嶇疆瀹炰緥錛?br /> <bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/
>
鎴栬?span style="font-size: 10pt; color: teal"><
beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/> 3銆乺equest    request琛ㄧず璇ラ拡瀵規瘡涓嬈?span>HTTP璇鋒眰閮戒細浜х敓涓涓柊鐨刡ean錛屽悓鏃惰bean浠呭湪褰撳墠HTTP request鍐呮湁鏁堛?/span>request銆?span>session銆乬lobal session浣跨敤鐨勬椂鍊欓鍏堣鍦╳eb.xml涓仛濡備笅閰嶇疆錛?/span>
     濡傛灉浣犱嬌鐢ㄧ殑鏄?span>Servlet 2.4鍙婁互涓婄殑web瀹瑰櫒錛岄偅涔堜綘浠呴渶瑕佸湪web搴旂敤鐨刋ML澹版槑鏂囦歡
web.xml涓鍔犱笅榪癈ontextListener鍗沖彲錛?br />
 <web-app>
  ...
  
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
  
</listener>
  ...
</web-app>

錛屽鏋滄槸Servlet2.4浠ュ墠鐨剋eb瀹瑰櫒,閭d箞浣犺浣跨敤涓涓猨avax.servlet.Filter鐨勫疄鐜幫細
<web-app>
 ..
 
<filter> 
    
<filter-name>requestContextFilter</filter-name>
 
    
<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>

 
</filter> 
 
<filter-mapping>
 
    
<filter-name>requestContextFilter</filter-name>
 
    
<url-pattern>/*</url-pattern>

 
</filter-mapping>
  ...
</web-app>

鎺ョ潃鏃㈠彲浠ラ厤緗?/span>bean鐨勪綔鐢ㄥ煙浜嗭細
<bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>

4銆乻ession    
session浣滅敤鍩熻〃紺鴻閽堝姣忎竴嬈?span>HTTP璇鋒眰閮戒細浜х敓涓涓柊鐨刡ean錛屽悓鏃惰bean浠呭湪褰撳墠HTTP session鍐呮湁鏁堬紝閰嶇疆瀹炰緥錛?/span>閰嶇疆瀹炰緥錛氬拰request閰嶇疆瀹炰緥鐨勫墠鎻愪竴鏍鳳紝閰嶇疆濂絯eb鍚姩鏂囦歡灝卞彲浠ュ涓嬮厤緗細<bean id="role" class="spring.chapter2.maryGame.Role" scope="session"/>

5銆乬lobal session    
global session浣滅敤鍩熺被浼間簬鏍囧噯鐨?span>HTTP Session浣滅敤鍩燂紝涓嶈繃瀹冧粎浠呭湪鍩轟簬portlet鐨剋eb搴旂敤涓墠鏈夋剰涔夈侾ortlet瑙勮寖瀹氫箟浜嗗叏灞Session鐨勬蹇碉紝瀹冭鎵鏈夋瀯鎴愭煇涓猵ortlet web搴旂敤鐨勫悇縐嶄笉鍚岀殑portlet鎵鍏變韓銆傚湪global session浣滅敤鍩熶腑瀹氫箟鐨刡ean琚檺瀹氫簬鍏ㄥ眬portlet Session鐨勭敓鍛藉懆鏈熻寖鍥村唴銆傚鏋滀綘鍦╳eb涓嬌鐢╣lobal session浣滅敤鍩熸潵鏍囪瘑bean錛岄偅涔坵eb浼氳嚜鍔ㄥ綋鎴恠ession綾誨瀷鏉ヤ嬌鐢ㄣ?/span>閰嶇疆瀹炰緥錛氬拰request閰嶇疆瀹炰緥鐨勫墠鎻愪竴鏍鳳紝閰嶇疆濂絯eb鍚姩鏂囦歡灝卞彲浠ュ涓嬮厤緗細
<bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>

6銆佽嚜瀹氫箟bean瑁呴厤浣滅敤鍩?/font>      
鍦╯pring2.0涓綔鐢ㄥ煙鏄彲浠ヤ換鎰忔墿灞曠殑錛屼綘鍙互鑷畾涔変綔鐢ㄥ煙錛岀敋鑷充綘涔熷彲浠ラ噸鏂板畾涔夊凡鏈夌殑浣滅敤鍩燂紙浣嗘槸浣犱笉鑳借鐩杝ingleton鍜宲rototype錛夛紝spring鐨勪綔鐢ㄥ煙鐢辨帴鍙rg.springframework.beans.factory.config.Scope鏉ュ畾涔夛紝鑷畾涔夎嚜宸辯殑浣滅敤鍩熷彧瑕佸疄鐜拌鎺ュ彛鍗沖彲錛屼笅闈㈢粰涓疄渚嬶細鎴戜滑寤虹珛涓涓嚎紼嬬殑scope錛岃scope鍦ㄨ〃紺轟竴涓嚎紼嬩腑鏈夋晥錛屼唬鐮佸涓嬶細
publicclass MyScope implements Scope 
     privatefinal ThreadLocal threadScope = 
new ThreadLocal() 
{
          
protected Object initialValue()
{
            returnnew HashMap(); 
          }
 
    }

     
public Object get(String name, ObjectFactory objectFactory) 

        Map scope = (Map) threadScope.get(); 
        Object object = scope.get(name); 
        
if(object==null)

          object = objectFactory.getObject(); 
          scope.put(name, object); 
        }
 
        
return
 object; 
     }
 
     
public Object remove(String name)

        Map scope = (Map) threadScope.get(); 
        
return
 scope.remove(name); 
     }

     publicvoid registerDestructionCallback(String name, Runnable callback) 

     }

    
public String getConversationId() {
       
// TODO Auto-generated method stub
       returnnull;
    }
 
          }


]]>
主站蜘蛛池模板: 精品免费AV一区二区三区| 亚洲视频在线观看视频| 日韩av无码免费播放| 香蕉97碰碰视频免费| 久久精品国产亚洲AV未满十八| 亚洲av无码专区在线电影| 亚洲国产欧洲综合997久久| 亚洲av无码片vr一区二区三区| 久久亚洲中文字幕无码| 美女扒开尿口给男人爽免费视频 | 日本一道在线日本一道高清不卡免费| 可以免费看黄视频的网站| 可以免费看的卡一卡二| 最近中文字幕免费mv视频8| 久久精品国产影库免费看| 久久久精品午夜免费不卡| 91精品国产免费入口| 嘿嘿嘿视频免费网站在线观看| 日韩精品无码免费专区午夜不卡| 色www永久免费| 成人在线免费视频| 中文字幕高清免费不卡视频| 美女被免费网站在线视频免费| 永久免费无码日韩视频| av永久免费网站在线观看| 最近2022中文字幕免费视频| 成人A级毛片免费观看AV网站| 宅男666在线永久免费观看| 亚洲人成影院在线观看 | 黄页免费的网站勿入免费直接进入| 国产免费看JIZZ视频| 一级毛片免费不卡在线| 久久国产乱子伦精品免费强| 美女内射无套日韩免费播放| 久久aⅴ免费观看| 久久午夜免费视频| 免费a级毛片18以上观看精品| 亚洲精品无码乱码成人| 亚洲av永久无码精品天堂久久| 丰满亚洲大尺度无码无码专线| a级片免费在线播放|