ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>91激情在线,国产高清一区日本,91欧美在线视频http://www.aygfsteel.com/xfan/archive/2006/06/15/53099.html~ž®Q~ž®QThu, 15 Jun 2006 14:44:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/15/53099.htmlhttp://www.aygfsteel.com/xfan/comments/53099.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/15/53099.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/53099.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/53099.html
注解åQ?br />1.spring mvcè¯äh‰€æœ‰çš„è¯äh±‚都æäº¤ç»™DispatcherServlet,它会委托应用¾pÈ»Ÿçš„其他模å—负责负责对è¯äh±‚˜q›è¡ŒçœŸæ­£çš„处ç†å·¥ä½œã€?br />2.DispatcherServlet查询一个或多个HandlerMapping,扑ֈ°å¤„ç†è¯äh±‚çš„Controller.
3.DispatcherServlet误‚¯·æ±‚æäº¤åˆ°ç›®æ ‡Controller
4.Controller˜q›è¡Œä¸šåŠ¡é€»è¾‘å¤„ç†åŽï¼Œä¼šè¿”回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解æžå™?扑ֈ°ModelAndView对象指定的视囑֯¹è±?br />6.视图对象负责渲染˜q”回¾l™å®¢æˆïL«¯

~ž®Q 2006-06-15 22:44 å‘表评论
]]>
Quartzçš„cron表达å¼?/title><link>http://www.aygfsteel.com/xfan/archive/2006/06/14/52801.html</link><dc:creator>~ž®Q</dc:creator><author>~ž®Q</author><pubDate>Wed, 14 Jun 2006 09:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/xfan/archive/2006/06/14/52801.html</guid><wfw:comment>http://www.aygfsteel.com/xfan/comments/52801.html</wfw:comment><comments>http://www.aygfsteel.com/xfan/archive/2006/06/14/52801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xfan/comments/commentRss/52801.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xfan/services/trackbacks/52801.html</trackback:ping><description><![CDATA[     摘è¦: 介ç»Quartzçš„cron表达å¼?nbsp; <a href='http://www.aygfsteel.com/xfan/archive/2006/06/14/52801.html'>阅读全文</a><img src ="http://www.aygfsteel.com/xfan/aggbug/52801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xfan/" target="_blank">~ž®Q</a> 2006-06-14 17:36 <a href="http://www.aygfsteel.com/xfan/archive/2006/06/14/52801.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>在spring利用javamailåQŒquartz定时å‘é€é‚®ä»?/title><link>http://www.aygfsteel.com/xfan/archive/2006/06/13/52577.html</link><dc:creator>~ž®Q</dc:creator><author>~ž®Q</author><pubDate>Tue, 13 Jun 2006 14:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/xfan/archive/2006/06/13/52577.html</guid><wfw:comment>http://www.aygfsteel.com/xfan/comments/52577.html</wfw:comment><comments>http://www.aygfsteel.com/xfan/archive/2006/06/13/52577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xfan/comments/commentRss/52577.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xfan/services/trackbacks/52577.html</trackback:ping><description><![CDATA[     在webå¼€å‘中åQŒæˆ‘们ç»å¸”Rœ€è¦å®šæ—¶å®Œæˆä¸€äº›åŠŸèƒ½ã€‚æ¯”å¦‚å®šä¹‰ç»Ÿè®¡æŠ¥è¡¨å•ŠåQŒç»Ÿè®¡ç”¨æˆähŽ’åç­‰½{‰ã€‚利用springž®±å¯ä»¥è½»æ‘Öœ°åšåˆ°˜q™äº›ä»ÕdŠ¡ã€‚ä¸‹é¢æˆ‘ž®×ƒ»¥å®šæ—¶å‘é€é‚®ä»¶æ¥æ¥å±•½Cºå¦‚何利用spring定时å‘é€é‚®ä»Óž¼Œä»¥åŠspring对JavaMail的简化ã€?br />MailService.java¾c?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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> com.open.quartz;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.mail.MailException;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.mail.MailSender;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.mail.SimpleMailMessage;<br /><img id="Codehighlighter1_192_610_Open_Image" onclick="this.style.display='none'; Codehighlighter1_192_610_Open_Text.style.display='none'; Codehighlighter1_192_610_Closed_Image.style.display='inline'; Codehighlighter1_192_610_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_192_610_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_192_610_Closed_Text.style.display='none'; Codehighlighter1_192_610_Open_Image.style.display='inline'; Codehighlighter1_192_610_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"> MailService </span><span id="Codehighlighter1_192_610_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><span id="Codehighlighter1_192_610_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> MailSender mailSender;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> SimpleMailMessage mailMessage;//é‚®äšg模æ¿<br /><img id="Codehighlighter1_290_589_Open_Image" onclick="this.style.display='none'; Codehighlighter1_290_589_Open_Text.style.display='none'; Codehighlighter1_290_589_Closed_Image.style.display='inline'; Codehighlighter1_290_589_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_290_589_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_290_589_Closed_Text.style.display='none'; Codehighlighter1_290_589_Open_Image.style.display='inline'; Codehighlighter1_290_589_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"> sendMail() </span><span id="Codehighlighter1_290_589_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><span id="Codehighlighter1_290_589_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-----------å‘é€é‚®ä»?---------</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        SimpleMailMessage msg</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SimpleMailMessage(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.mailMessage);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        msg.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">this is a test mail</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img id="Codehighlighter1_452_481_Open_Image" onclick="this.style.display='none'; Codehighlighter1_452_481_Open_Text.style.display='none'; Codehighlighter1_452_481_Closed_Image.style.display='inline'; Codehighlighter1_452_481_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_452_481_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_452_481_Closed_Text.style.display='none'; Codehighlighter1_452_481_Open_Image.style.display='inline'; Codehighlighter1_452_481_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_452_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.aygfsteel.com/images/dot.gif" /></span><span id="Codehighlighter1_452_481_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            mailSender.send(msg);<br /><img id="Codehighlighter1_507_535_Open_Image" onclick="this.style.display='none'; Codehighlighter1_507_535_Open_Text.style.display='none'; Codehighlighter1_507_535_Closed_Image.style.display='inline'; Codehighlighter1_507_535_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_507_535_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_507_535_Closed_Text.style.display='none'; Codehighlighter1_507_535_Open_Image.style.display='inline'; Codehighlighter1_507_535_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (MailException e) </span><span id="Codehighlighter1_507_535_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><span id="Codehighlighter1_507_535_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            e.printStackTrace();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-----------å‘逿ˆåŠ?---------</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><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">çœç•¥set,getæ–ÒŽ³•</span><span style="COLOR: #008000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">}</span></span></div>在web.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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">org.springframework.web.context.ContextLoaderListener</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">></span></div>在WEB-INF目录下添加applicationContext.xmlæ–‡äšg<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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">beans</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </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"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </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: #ff0000"> value</span><span style="COLOR: #0000ff">="smtp.163.com"</span><span style="COLOR: #0000ff">/><br /></span><span style="COLOR: #000000">            <font color="#0000ff"><!-- 有些邮äšgæœåС噍å‘é€é‚®ä»‰™œ€è¦è®¤è¯ï¼Œæ‰€ä»¥å¿…™åÀLä¾›å¸å·Â?--></font><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </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: #ff0000"> value</span><span style="COLOR: #0000ff">="填入用户å?</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </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: #ff0000"> value</span><span style="COLOR: #0000ff">="填入密ç "</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    <!--一个邮件模æ?-><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="mailMessage"</span><span style="COLOR: #ff0000"> class</span><span style="COLOR: #0000ff">="org.springframework.mail.SimpleMailMessage"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="to"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="asm_c_yuan@163.com"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="from"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="asm_c_yuan@163.com"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="subject"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="test"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">><br /></span><span style="COLOR: #000000">        <span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="ms"</span><span style="COLOR: #ff0000"> class</span><span style="COLOR: #0000ff">="com.open.quartz.MailService"</span><span style="COLOR: #ff0000"> autowire</span><span style="COLOR: #0000ff">="byName"</span><span style="COLOR: #0000ff">/></span><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="reportJob"</span><span style="COLOR: #ff0000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        class</span><span style="COLOR: #0000ff">="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="targetObject"</span><span style="COLOR: #ff0000"> ref</span><span style="COLOR: #0000ff">="ms"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="targetMethod"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="sendMail"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">><br /></span><span style="COLOR: #000000">       <!--一个简å•的调度å™?-><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="simpleTrigger"</span><span style="COLOR: #ff0000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        class</span><span style="COLOR: #0000ff">="org.springframework.scheduling.quartz.SimpleTriggerBean"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jobDetail"</span><span style="COLOR: #ff0000"> ref</span><span style="COLOR: #0000ff">="reportJob"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="startDelay"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #0000ff">/>   在webå¯åŠ¨å¤šå°‘æ¯«ç§’åŽå¯åЍä“QåŠ?/span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="repeatInterval"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="100000000"</span><span style="COLOR: #0000ff">/> 表示没隔多少毫秒å¯åЍ</span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">><br /></span><span style="COLOR: #000000">       <!--一个定时的调度å™?-><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="cronTrigger"</span><span style="COLOR: #ff0000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        class</span><span style="COLOR: #0000ff">="org.springframework.scheduling.quartz.CronTriggerBean"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jobDetail"</span><span style="COLOR: #ff0000"> ref</span><span style="COLOR: #0000ff">="reportJob"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="cronExpression"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="0 0 6 * * ?"</span><span style="COLOR: #0000ff">/> 指明æ¯å¤©æ—©ä¸Š6点å¯åЍä“QåŠ?表达å¼çš„解释è§ä¸‹½‹‡æ–‡ç«?/span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="org.springframework.scheduling.quartz.SchedulerFactoryBean"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="triggers"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">list</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">ref </span><span style="COLOR: #ff0000">bean</span><span style="COLOR: #0000ff">="simpleTrigger"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">list</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">></span></div>涉åŠçš„jar包有:spring.jar,javamail.jar,activation.jar,quartz.jar<br /><img src ="http://www.aygfsteel.com/xfan/aggbug/52577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xfan/" target="_blank">~ž®Q</a> 2006-06-13 22:06 <a href="http://www.aygfsteel.com/xfan/archive/2006/06/13/52577.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>spring对java˜qœç¨‹è°ƒç”¨çš„简åŒ?ä¸?之HTTPinvoker http://www.aygfsteel.com/xfan/archive/2006/06/13/52463.html~ž®Q~ž®QTue, 13 Jun 2006 06:02:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/13/52463.htmlhttp://www.aygfsteel.com/xfan/comments/52463.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/13/52463.html#Feedback2http://www.aygfsteel.com/xfan/comments/commentRss/52463.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/52463.html   spring的用法跟hessian,burlap一栗÷€‚把代熾c»ï¼Œå’ŒæœåŠ¡è¾“å‡ºç±»åˆ†åˆ«æ”ÒŽˆ
org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean
org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
ž®±å¯ä»¥äº†åQŒä¸ç”¨æ”¹ä»£ç ž®±å¯ä»¥è¿è¡Œç¬¬äºŒèŠ‚çš„ä¾‹å­?img src ="http://www.aygfsteel.com/xfan/aggbug/52463.html" width = "1" height = "1" />

~ž®Q 2006-06-13 14:02 å‘表评论
]]>
spring对java˜qœç¨‹è°ƒç”¨çš„简åŒ?äº?之Hessian,Burlaphttp://www.aygfsteel.com/xfan/archive/2006/06/13/52446.html~ž®Q~ž®QTue, 13 Jun 2006 05:19:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/13/52446.htmlhttp://www.aygfsteel.com/xfan/comments/52446.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/13/52446.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/52446.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/52446.html       HessianåƒRMI那样åQŒä‹É用二˜q›åˆ¶æ¶ˆæ¯æ¥å¾ç«‹å®¢æˆïL«¯å’ŒæœåŠ¡ç«¯ä¹‹é—´çš„äº¤‹¹ã€‚与其他二进制远½E‹æŠ€æœ?想RMI)ä¸åŒçš„æ˜¯åQŒå®ƒå¯ä»¥¿UÀL¤åˆ°å…¶ä»–éžJava的语­a€ã€?br />      Burlap是一¿U基于Xml的远½E‹æŠ€æœ¯ï¼Œ˜q™ä‹Éå¾—ä»–å¯ä»¥¿UÀL¤åˆîC“Q何å¯ä»¥è§£æžXML的语­a€ä¸­ã€‚比起HessianåQŒå®ƒçš„å¯è¯ÀL€§æ›´å¼ºã€‚和其他åŸÞZºŽXml的远½E‹æŠ€æœ¯ï¼ˆå¦‚SOAPå’ŒXML-RPCåQ‰ä¸åŒï¼Œå®ƒçš„æ¶ˆæ¯¾l“æž„ž®½å¯èƒ½ç®€å•,ä¸éœ€è¦é¢å¤–的外部定义语言(如WSDL或IDL).
 针对å‰é¢çš„例å­ï¼Œçœ‹çœ‹spring对Hessianå’ŒBurlap是怎么½Ž€åŒ–ã€?br />1.Hessian
1)客户端的é…ç½®åQŒåªéœ€è¦ä¿®æ”¹bean_client.xml的酾|?br />
<beans>
    
<!--客户�/span>-->
    
<bean id="pf" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
        
<property name="serviceUrl"  value="http://192.168.1.8:8080/spring/pay.service"/>
        
<property name="serviceInterface" value="com.open.rmi.ex2.PerfectTimeI"/>
    
</bean>
    
<bean id="test" class="com.open.rmi.ex2.DisplayPerfectTime">
        
<property name="pf" ref="pf"/>
    
</bean>
</beans>
Hessianå’ŒBurlap是基于Httpçš?http://192.168.1.8:8080/spring/pay.service是æœåŠ¡ç«¯çš„è®¿é—®åœ°å€
2)æœåŠ¡ç«¯çš„é…ç½®åQŒè¿™é‡?/font>
采用spring的mvc
先在web.xml中增加下é¢çš„é…ç½®
<servlet>
        
<servlet-name>Dispatcher</servlet-name>
        
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
    
<servlet-mapping>
        
<servlet-name>Dispatcher</servlet-name>
        
<url-pattern>*.service</url-pattern>
    
</servlet-mapping>

½W¬ä¸€èŠ‚ä¸­çš„bean_server.xmlž®±æ”¹é…ç½®Dispatcher-servlet.xmlæ–‡äšg中了
<beans>
    
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        
<property name="mappings">
            
<props>
                
<prop key="/pay.service">hessianService</prop>
            
</props>
        
</property>
    
</bean>
    
<bean id="hessianService" class="org.springframework.remoting.caucho.HessianServiceExporter">
        
<property name="service" ref="pt"/>
        
<property name="serviceInterface" value="com.open.rmi.ex2.PerfectTimeI"/>
    
</bean>
    
<bean id="pt" class="com.open.rmi.ex2.PerfectTime"/>
</bean>
è·Ÿç¬¬ä¸€èŠ‚çš„ç›¸æ¯”åªæ˜¯æ›´æ¢äº†ä»£ç†ç±»åQŒå¯åЍtomcatåQŒåœ¨˜q行TestClientž®±å¯ä»¥çœ‹åˆ°è¾“出结果了
2.Burlap
åªè¦æŠŠbean_client.xml中的HessianProxyFactoryBeanæ”ÒŽˆBurlapProxyFactoryBean,Dispatcher-servlet.xml中的HessianServiceExporteræ”ÒŽˆBurlapServiceExporteråQŒå°±å¯ä»¥äº†ã€?br />      通过上é¢å¯ä»¥çœ‹åˆ°åQŒåº”用从¾U¯RMI转æ¢åˆ°Hessian,Burlap是多么容易啊!




]]>
spring对java˜qœç¨‹è°ƒç”¨çš„简åŒ?一)之RMIhttp://www.aygfsteel.com/xfan/archive/2006/06/12/52294.html~ž®Q~ž®QMon, 12 Jun 2006 15:15:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/12/52294.htmlhttp://www.aygfsteel.com/xfan/comments/52294.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/12/52294.html#Feedback2http://www.aygfsteel.com/xfan/comments/commentRss/52294.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/52294.html1.˜qœç¨‹æ–ÒŽ³•调用åQˆRMIåQ?br />2.Cauchoçš„Hessianå’ŒBurlap
3.Spring自己的HTTP invoker
4.EJB
5.Web Services
一.RMI
它由5个包å?个应用工å…ïL»„æˆ?br />java.rmi ¾l„织客户端的RMI¾c…R€æŽ¥å£å’Œå¼‚常
java.rmi.server ¾l„织æœåŠ¡å™¨ç«¯çš„RMI¾c?接å£å’Œå¼‚å¸?br />java.rmi.registry ¾l„织用于½Ž¡ç†RMIå‘½åæœåŠ¡çš„ç±»
java.rmi.dgc ¾l„织用于½Ž¡ç†åˆ†å¸ƒå¼åžƒåœ¾æ”¶é›†çš„¾c?br />java.rmi.activation ¾l„织用于实现按需‹È€‹zÈš„RMIæœåŠ¡çš„ç±»
rmic ¾~–译器,它äñ”生RMI使用的存根和框架以完æˆåˆ†å¸ƒå¼é€šä¿¡
rmiregistry ä¸€ä¸ªäØ“RMIæä¾›å‘½åæœåŠ¡çš„æœåС噍åQŒè¿™™åÒŽœåŠ¡æŠŠå字和对象关è”在一èµ?br />rmid 一个支æŒRMI‹È€‹zÀL¡†æž¶çš„æœåŠ¡å™?br />
     如果具体˜q˜ä¸çŸ¥é“什么是RMIåQŒå¯ä»¥å‚考这½‹‡éžå¸æ€¸é”™çš„æ–‡ç« ã€?a >JavaRMI入门实战ã€?br />注æ„:
    1)è¦æŠŠPerfectTime å’ŒPerfectTimeI¾cÖM¸­çš?br />   System.setSecurityManager(new RMISecurityManager()); æ³¨é‡ŠæŽ‰ï¼ˆå› äØ“˜q™éœ€è¦é…安全½{–ç•¥åQŒæ¯”较麻烦)
   2)˜q˜æœ‰åœ¨JDK5下,用rmic -d命ä×oçš„è¯åªä¼šè¾“出一个文ä»Óž¼Œå› äØ“JDK5对RMI˜q›è¡Œäº†ä¼˜åŒ?br />接下æ¥çœ‹çœ‹ç”¨springå¯V€?a >JavaRMI入门实战》例å­çš„½Ž€åŒ?br />1.客户端的é…ç½®åŠä»£ç ?br />PerfectTimeI接å£åQˆä¸ç”¨ç‘ô承java.rmi.Remote接å£äº†ï¼Œæ™®é€šçš„POJOåQ?br />
package com.open.rmi.ex2;
public interface PerfectTimeI  {
    
long getPerfectTime(); 
}
DisplayPerfectTime¾c?也是一个普通的¾c?
package com.open.rmi.ex2;
public class DisplayPerfectTime {
    
private PerfectTimeI pf;
    
public void display() {
        
for (int i = 0; i < 10; i++) {
            System.out.println(
"PerfectTime:" + pf.getPerfectTime());
        }

    }

    
//çœç•¥äº†pfçš„get,setæ–ÒŽ³•
}
客户端酾|®bean_client.xml
<beans>
    
<!--客户�/span>-->
    
<bean id="pf" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
        
<property name="serviceUrl" value="rmi://192.168.1.8:1099/perfect_time"/>
        
<property name="serviceInterface" value="com.open.rmi.ex2.PerfectTimeI"/>
    
</bean>
    
<bean id="test" class="com.open.rmi.ex2.DisplayPerfectTime">
        
<property name="pf" ref="pf"/>
    
</bean>
</beans>
2.æœåŠ¡ç«¯çš„é…ç½®åŠä»£ç ?br />PerfectTime¾c?爽å§åQŒç®€½Ž€å•å•çš„POJO)
package com.open.rmi.ex2;
public class PerfectTime  implements PerfectTimeI {
    
public long getPerfectTime() {
        
return System.currentTimeMillis();
    }

}
é…ç½®bean_server.xml
<beans>
    
<!--æœåŠ¡ç«?Springè¯Õd–完定义文ä»?在生æˆserviceExporter实例åŽï¼ŒRMIæœåŠ¡ž®×ƒ¼šå¯åЍ-->
    
<bean id="serviceExporter"
        
class="org.springframework.remoting.rmi.RmiServiceExporter">
        
<property name="service" ref="pt"/>
        
<property name="serviceName" value="perfect_time"/>
        
<property name="serviceInterface" value="com.open.rmi.ex2.PerfectTimeI"/>
    
</bean>
    
<bean id="pt" class="com.open.rmi.ex2.PerfectTime"/>
</beans>
3.‹¹‹è¯•代ç 
TestServer.java
package com.open.rmi.ex2;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestServer {
    
public static void main(String[] args) {
        BeanFactory bf
=new ClassPathXmlApplicationContext("bean_server.xml");
        bf.getBean(
"serviceExporter");
    }

}

TestClient.java
package com.open.rmi.ex2;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestClient {
    
public static void main(String[] args) {
        BeanFactory bf 
= new ClassPathXmlApplicationContext("bean_client.xml");
        DisplayPerfectTime test 
= (DisplayPerfectTime)bf.getBean("test");
        test.display();
    }

}

å…ˆè¿è¡ŒTestServeråQŒè¾“å‡?br />
RmiServiceExporter - Could not detect RMI registry - creating new one
在è¿è¡ŒTestClientž®±å¯ä»¥çœ‹åˆ°ç»“果了
PerfectTime:1150125107468
PerfectTime:
1150125107484
PerfectTime:
1150125107484
看到没,你根本ä¸ç”¨è¿è¡Œrmic -d G:\RMI test.PerfectTimeåQŒstart rmiregistry ã€?br />˜q™å°±æ˜¯spring的魅力啊


]]>
spring中事务的属æ€?/title><link>http://www.aygfsteel.com/xfan/archive/2006/06/11/52064.html</link><dc:creator>~ž®Q</dc:creator><author>~ž®Q</author><pubDate>Sun, 11 Jun 2006 14:50:00 GMT</pubDate><guid>http://www.aygfsteel.com/xfan/archive/2006/06/11/52064.html</guid><wfw:comment>http://www.aygfsteel.com/xfan/comments/52064.html</wfw:comment><comments>http://www.aygfsteel.com/xfan/archive/2006/06/11/52064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xfan/comments/commentRss/52064.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xfan/services/trackbacks/52064.html</trackback:ping><description><![CDATA[1.ä¼ æ’­è¡ŒäØ“<br />定义了关于客æˆïL«¯å’Œè¢«è°ƒç”¨æ–ÒŽ³•的事务边界。传播规则就是在说明新的事务是å¦è¦è¢«å¯åŠ¨æˆ–æ˜¯æŒ‚è“våQŒæˆ–者方法是å¦è¦åœ¨äº‹åŠ¡çŽ¯å¢ƒä¸­˜q行ã€?br />spring定义äº?¿Uä¸åŒçš„ä¼ æ’­è¡ŒäØ“ã€?br />1)PROPAGATION_MANDATORY<br />   表明æ–ÒŽ³•å¿…é¡»è¦åœ¨äº‹åС䏭è¿è¡Œã€‚如果事务ä¸å­˜åœ¨åQŒæŠ›å‡ºå¼‚å¸?br />2)PROPAGATION_NESTED<br />   表示如果当å‰å·²ç»å­˜åœ¨ä¸€ä¸ªäº‹åŠ¡ï¼Œåˆ™è¯¥æ–ÒŽ³•应当˜q行在一个嵌套的事务中。被嵌套的事务å¯ä»¥ä»Žå½“å‰äº‹åС䏭å•独地æäº¤æˆ–回滚。如果当å‰äº‹åŠ¡ä¸å­˜åœ¨åQŒå°±ç›¸å½“于PROPAGATION_REQUIRED<br />3)PROPAGATION_NEVER<br />  表示当å‰çš„æ–¹æ³•ä¸åº”该˜q行在一个事务上下文中。如果当å‰å­˜åœ¨ä¸€ä¸ªäº‹åŠ¡ï¼Œåˆ™ä¼šæŠ›å‡ºä¸€ä¸ªå¼‚å¸¸ã€?br />4)PROPAGATION_NOT_SUPPORTED<br />表示该方法ä¸åº”该在事务中˜q行。如果一个现有的事务正在˜q行中。它ž®†åœ¨è¯¥æ–¹æ³•çš„˜q行期间被挂èµ?br />5)PROPAGATION_REQUIRED<br />è¡¨ç¤ºå½“å‰æ–ÒŽ³•å¿…é¡»˜q行在一个事务中。如果一个现有的事务正在˜q行中,该方法将˜q行在这个事务中。å¦åˆ™çš„è¯ï¼Œž®Þp¦å¼€å§‹ä¸€ä¸ªæ–°çš„事务ã€?br />6)PROPAGATION_REQUIRES_NEW<br />è¡¨ç¤ºå½“å‰æ–ÒŽ³•å¿…é¡»˜q行在它自己的事务中。如果一个现有事务在˜q行的è¯åQŒå°†åœ¨è¿™ä¸ªæ–¹æ³•è¿è¡ŒæœŸé—´è¢«æŒ‚è“vã€?br />7)PROPAGATION_SUPPORTS<br />è¡¨ç¤ºå½“å‰æ–ÒŽ³•ä¸éœ€è¦äº‹åС处ç†çŽ¯å¢ƒï¼Œä½†å¦‚æžœæœ‰ä¸€ä¸ªäº‹åŠ¡å·²¾l在˜q行的è¯åQŒè¿™ä¸ªæ–¹æ³•也å¯ä»¥åœ¨è¿™ä¸ªäº‹åС䏭˜q行<br />2.隔离¾U§åˆ«<br />多个事务òq¶å‘˜q行的关¾p…R€‚å› ä¸ºåÆˆå‘ä¼šå¯ÆD‡´ä»¥ä¸‹é—®é¢˜<br />.è„读(Dirty read) 一个事务读å–了被å¦ä¸€ä¸ªäº‹åŠ¡æ”¹å†™ä½†˜q˜æ²¡æäº¤çš„æ•°æ®ã€?br />.ä¸å¯é‡å¤è¯?Nonrepeatable read) 一个事务执行相åŒçš„æŸ¥è¯¢ä¸¤æ¬¡æˆ–两‹Æ¡ä»¥ä¸Šï¼Œä½†æ¯‹Æ¡æŸ¥è¯¢ç»“果都ä¸åŒæ—¶ã€‚è¿™ç”׃ºŽå¦ä¸€ä¸ªåƈå‘事务在两次查询之间更新了数æ?br />.òq»è¯»(Phantom read)<br />当一个事务读å–几行记录åŽåQŒå¦ä¸€ä¸ªåƈå‘事务æ’入一些记录,ž®±å‘生了òq»è¯»<br />spring定义了以ä¸?¿Uéš”¼›Õd…³¾p?br />1)ISOLATION_DEFAULT<br />使用åŽç«¯æ•°æ®åº“默认得隔离¾U§åˆ«<br />2)ISOLATION_READ_UNCOMMITTED<br />å…许你读å–还未æäº¤çš„æ”¹å˜äº†çš„æ•°æ®ã€‚å¯èƒ½å¯¼è‡´è„读,ä¸å¯é‡å¤è¯»ï¼Œòq»è¯»<br />3)ISOLATION_READ_COMMITTTED<br />˜qè¡Œåœ¨åÆˆå‘事务已¾læä»·åŽè¯Õd–。å¯é˜²æ­¢è„读åQŒä½†ä¸å¯é‡å¤è¯»ï¼Œòq»è¯»éƒ½æœ‰å¯èƒ½å‘生<br />4)ISOLATION_REPEATABLE_READ<br />对相åŒå­—ŒD늚„多次è¯Õd–¾l“果是一致的åQŒé™¤éžæ•°æ®è¢«äº‹åŠ¡æœ¬èín。å¯é˜²æ­¢è„读åQŒä¸å¯é‡å¤è¯»åQŒä½†òq»è¯»ä»å¯èƒ½å‘生ã€?br />5)ISOLATION_SERIALIZABLE<br />完全æœä»ŽACID的隔¼›Èñ”别,¼‹®ä¿ä¸å‘生è„读,ä¸å¯é‡å¤è¯»ï¼Œòq»è¯»ã€‚å®ƒçš„å…¸åž‹åšæ³•就是完全é”定在事务中涉åŠçš„æ•°æ®è¡¨ã€‚因此它是最慢地ã€?br />3.åªè¯»æç¤º<br />通过åªè¯»å±žæ€§ï¼Œæ•°æ®åº“å¯ä»¥å¯¹äº‹åŠ¡˜q›è¡Œä¼˜åŒ–ã€?br />4.事务­‘…æ—¶æ—‰™—´<br />讄¡½®äº†çš„è¯ï¼Œäº‹åŠ¡åœ¨è¶…˜q‡è¿™ä¸ªæ—¶é—´åŽž®Þp‡ªåŠ¨å›žæ»šã€‚é¿å…å ç”¨èµ„æºè¿‡ä¹…ã€?img src ="http://www.aygfsteel.com/xfan/aggbug/52064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xfan/" target="_blank">~ž®Q</a> 2006-06-11 22:50 <a href="http://www.aygfsteel.com/xfan/archive/2006/06/11/52064.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>事务的特点以åŠspringæä¾›äº‹åŠ¡½Ž¡ç†å™¨çš„½Ž€ä»?/title><link>http://www.aygfsteel.com/xfan/archive/2006/06/10/51839.html</link><dc:creator>~ž®Q</dc:creator><author>~ž®Q</author><pubDate>Sat, 10 Jun 2006 06:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/xfan/archive/2006/06/10/51839.html</guid><wfw:comment>http://www.aygfsteel.com/xfan/comments/51839.html</wfw:comment><comments>http://www.aygfsteel.com/xfan/archive/2006/06/10/51839.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xfan/comments/commentRss/51839.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xfan/services/trackbacks/51839.html</trackback:ping><description><![CDATA[事务的特ç‚?ACID)<br />1)åŽŸå­æ€?Atomic)<br />事务ç”׃¸€ä¸ªæˆ–å¤šä¸ªè¡ŒäØ“¾l‘在一èµïL»„æˆçš„åQŒå¥½åƒä¸€ä¸ªå•独的工作å•元。事务中的æ“作è¦ä¹ˆéƒ½å‘生åQŒè¦ä¹ˆéƒ½ä¸å‘生ã€?br />2)一致æ€?Consistent)一旦一个事务结æŸäº†(ä¸ç®¡æˆåŠŸä¸Žå¦)åQŒç³»¾lŸæ‰€å¤„的状æ€å’Œå®ƒçš„业务规则是一致的ã€?br />3)隔离æ€?Isolated)事务应该å…许多个用户æ“作åŒä¸€ä¸ªæ•°æ®ï¼Œä¸€ä¸ªç”¨æˆïLš„æ“ä½œä¸ä¼šå’Œå…¶ä»–用æˆïLš„æ“ä½œç›¸æØœ‹¹Šã€?br />4)æŒä¹…æ€?Durable)一旦事务完æˆï¼Œäº‹åŠ¡çš„ç»“æžœåº”è¯¥æŒä¹…化ã€?br /><br />springæä¾›äº†ä»¥ä¸‹äº‹åŠ¡ç®¡ç†å™¨<br />1)DataSourceTransactionManager      在å•一的JDBC DataSource中管ç†äº‹åŠ?br />2)HibernateTransactionManager 当æŒä¹…化机制是Hibernateæ—Óž¼Œç”¨å®ƒæ¥ç®¡ç†äº‹åŠ?br />3)JdoTransactionManager 当æŒä¹…化机制时JDOæ—Óž¼Œç”¨å®ƒæ¥ç®¡ç†äº‹åŠ?br />4)JtaTransactionManager使用一个JTA实行æ¥ç®¡ç†äº‹åŠ¡ã€‚å½“ä¸€ä¸ªäº‹åŠ¡è·¨­‘Šå¤šä¸ªèµ„æºæ—¶Â Â Â Â  必须使用<br />5)PersistenceBrokerTransactionManager当Apacheçš„OJB用作æŒä¹…化时åQŒç”¨å®ƒæ¥½Ž¡ç†äº‹åŠ¡<br />6)TopLinkTransactionManager当oracleçš„TopLink用作æŒä¹…化时åQŒç”¨å®ƒæ¥½Ž¡ç†äº‹åŠ¡<br />7)JmsTransactionManager用它æ¥ç®¡ç†JMS的事åŠ?br /><br /><img src ="http://www.aygfsteel.com/xfan/aggbug/51839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xfan/" target="_blank">~ž®Q</a> 2006-06-10 14:02 <a href="http://www.aygfsteel.com/xfan/archive/2006/06/10/51839.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>ProxyFactoryBean属性介¾l?/title><link>http://www.aygfsteel.com/xfan/archive/2006/06/10/51794.html</link><dc:creator>~ž®Q</dc:creator><author>~ž®Q</author><pubDate>Sat, 10 Jun 2006 03:15:00 GMT</pubDate><guid>http://www.aygfsteel.com/xfan/archive/2006/06/10/51794.html</guid><wfw:comment>http://www.aygfsteel.com/xfan/comments/51794.html</wfw:comment><comments>http://www.aygfsteel.com/xfan/archive/2006/06/10/51794.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xfan/comments/commentRss/51794.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xfan/services/trackbacks/51794.html</trackback:ping><description><![CDATA[今天在看spring in action çš„AOP,ž®±æŠŠå®ƒæŠ„录下æ?br />target:代ç†çš„目标类<br />proxyInterfaces:代熾cÕdº”该实现的接å£åˆ—表<br />interceptorNames:需è¦åº”用到目标对象上的通知Beançš„åå­?å¯ä»¥æ˜¯æ‹¦æˆªå™¨,advisor和其他通知¾cÕdž‹çš„å字。这个属性必™åÀLŒ‰ç…§åœ¨BeanFactory中的™åºåºè®„¡½®<br />singleton:<br />aopProxyFactory:使用的ProxyFactoryBean实现。Spring带有两ç§å®žçް(JDK动æ€ä»£ç†å’ŒCGLIB)。通常ä¸éœ€è¦ä‹É用这个属æ€?br />exposeProxy:目标对象是å¦éœ€è¦å¾—到当å‰çš„代ç†ã€‚通过调用AopContext.getCurrentProxy实现ã€?br />frozen:一旦工厂被创å¾åQŒæ˜¯å¦å¯ä»¥ä¿®æ”¹ä»£ç†çš„通知。当讄¡½®ä¸ºtrueæ—Óž¼Œåœ¨è¿è¡Œæ—¶ž®×ƒ¸èƒ½ä¿®æ”¹ProxyFactoryBean了。通常ä¸éœ€è¦ä‹É用这个属性ã€?br />optimizeåQšæ˜¯å¦å¯¹åˆ›å¾çš„代ç†è¿›è¡Œä¼˜åŒ?åªé€‚用于CGLIB)<br />ProxyTargetClassåQšæ˜¯å¦ä»£ç†ç›®æ ‡ç±»åQŒè€Œä¸æ˜¯å®žçŽ°æŽ¥å£ã€‚åªèƒ½åœ¨ä½¿ç”¨CGLIBæ—¶ä‹Éç”?br /><br /><img src ="http://www.aygfsteel.com/xfan/aggbug/51794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xfan/" target="_blank">~ž®Q</a> 2006-06-10 11:15 <a href="http://www.aygfsteel.com/xfan/archive/2006/06/10/51794.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>spring中基¼‹€æ ¸å¿ƒæŽ¥å£ä»‹ç»http://www.aygfsteel.com/xfan/archive/2006/06/09/51654.html~ž®Q~ž®QFri, 09 Jun 2006 03:56:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/09/51654.htmlhttp://www.aygfsteel.com/xfan/comments/51654.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/09/51654.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/51654.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/51654.htmlspring中基¼‹€æ ¸å¿ƒæŽ¥å£æ€È»“
ç†è§£˜q™å‡ ä¸ªæŽ¥å£ï¼ŒåŠå…¶å®žçް¾cÕd°±å¯ä»¥å¿«é€Ÿäº†è§£spring,具体的用法å‚考其他spring资料

1.BeanFactory最基础最核心的接å?br />é‡è¦çš„实现类有:
XmlBeanFactory,以åŠApplicationContext接å£ä¸‹çš„¾c?/p>

2.Resource接å£,å¯ä»¥é€šç”¨åœ°è®¿é—®æ–‡ä»¶èµ„æº?br />1)ClassPathResource:è¯Õd–å¾—åÅžå¼äØ“"classpath:ApplicationContext.xml"
2)FileStstemResource:è¯Õd–å¾—åÅžå¼äØ“"file:c:\spring\src\ApplicationContext.xml"
3)ServletContextResource:è¯Õd–å¾—åÅžå¼äØ“"WEB-INF\ApplicationContext.xml"
//ResourceLoader¾cÈ”¨äºŽè²å…¥Resource

3.FactoryBean工厂bean
它本íw«åœ¨bean factoryä¸­å®šä¹‰ï¼ŒåŒæ—¶åˆæ˜¯ç”¨äºŽåˆ›å¾ç›®æ ‡bean的工åŽ?br />spring有以下实çŽ?
1)JndiObjectFactoryBean:通过JNDI查找获å–对象
2)LocalSessionFactoryBean:用于在本地装é…Hibernate SessionFactory
3)LocalSessionFactoryBean:用于在本地装é…JDO PersistenceManagerFactory
4)ProxyFactoryBean:用于获å–AOP的代ç?br />5)TransactionProxyFactoryBean:用于为对象创å»ÞZº‹åС代ç†ï¼Œç”¨äºŽå®žçް½Ž€æäh˜“用的声明性事务代ç?br />6)RmiProxyFactoryBean:为通过RMI讉K—®çš„远½E‹å¯¹è±¡åˆ›å»ÞZ¸€ä¸ªä»£ç?/p>

4.ApplicationContext加强了BeanFactory的功能,支æŒä»¥ä¸‹åŠŸèƒ½
1)国际化支æŒ?br />2)资æºè®‰K—®
3)事äšgç›‘å¬æœºåˆ¶
它的é‡è¦çš„实现类有:
FileSystemXmlApplicationContext,ClassPathXmlApplication,XmlWebApplicationContext

5.Bean生命周期的回调接å?br />BeanFactoryPostProcessor,InitializingBean,DisposableBean,BeanFactoryAware,ApplicationContextAware,ResourceLoader,BeanPostProcessor

6.MessageSource接å£
它的实现¾cÀLœ‰ResourceBundleMessageSource,ReloadableResourceBundleMessageSource.åŽè€…在属性文件修改åŽä¼šé‡æ–°è²å…?/p>

暂时介绘q™å‡ ä¸?/p>

]]>
最½Ž€å•的动æ€ä»£ç†å®žä¾?springåŸÞZºŽæŽ¥å£ä»£ç†çš„AOP原ç†)http://www.aygfsteel.com/xfan/archive/2006/06/09/51628.html~ž®Q~ž®QFri, 09 Jun 2006 02:20:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/09/51628.htmlhttp://www.aygfsteel.com/xfan/comments/51628.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/09/51628.html#Feedback1http://www.aygfsteel.com/xfan/comments/commentRss/51628.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/51628.htmlJDK的动æ€ä»£ç†æ˜¯åŸÞZºŽæŽ¥å£çš?br />

package  com.open.aop;
public   interface  BusinessInterface  {
    
public   void  processBusiness();
}
目标对象
package com.open.aop;
public class BusinessObject implements BusinessInterface {
    
public void processBusiness() {
        System.out.println(
"action");
    }

}

代ç†å¯¹è±¡
package com.open.aop;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class LogHandler implements InvocationHandler {
    
private Object delegate;
    
public Object binder(Object delegate) {
        
this.delegate=delegate;
        
return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),
                delegate.getClass().getInterfaces(),
this);
    }

    
public Object invoke(Object proxy, Method method, Object[] args)
            
throws Throwable {
        Object obj 
= null;
        System.out.println(
"对象æ–ÒŽ³•调用å‰?/span>");
        
try {
            obj 
= method.invoke(delegate, args);
        }
 catch (Exception e) {
        }

        System.out.println(
"对象æ–ÒŽ³•调用å?/span>"); 
        
return obj;
    }

}
‹¹‹è¯•¾c?
package com.open.aop;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
public class Test {
    
public static void main(String[] args) {
        BusinessInterface bi 
= (BusinessInterface) new LogHandler()
                .binder(
new BusinessObject());
        bi.processBusiness();
    }

}
输出¾l“æžœ
对象æ–ÒŽ³•调用å‰?br />action
对象æ–ÒŽ³•调用å?/span>


]]>
spring夿‚属性的é…ç½®http://www.aygfsteel.com/xfan/archive/2006/06/08/51303.html~ž®Q~ž®QThu, 08 Jun 2006 04:48:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/08/51303.htmlhttp://www.aygfsteel.com/xfan/comments/51303.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/08/51303.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/51303.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/51303.html package  com.open.bean;
import  java.util.List;
import  java.util.Map;
import  java.util.Properties;
public   class  BeanSet  {
    
private  String[] str1;
    
private  String[] str2;
    
private  List lst;
    
private  Map map;
    
private  Properties props;
    
private  ChildBean[] child;
   
// çœç•¥set,getæ–ÒŽ³•
}

package  com.open.bean;
public   class  ChildBean {}
é…置文äšg
<beans>
<bean id="bs" class="com.open.bean.BeanSet">
        
<property name="str1">
            
<list>
                
<value>value1</value>
                
<value>value2</value>
            
</list>
        
</property>
        
<property name="str2">
            
<value>value3,value4</value>
        
</property>
        
<property name="lst">
            
<list>
                
<value>value5</value>
                
<ref bean="cc1"/>
            
</list>
        
</property>
        
<property name="map">
            
<map>
                
<entry key="key1">
                    
<value>xxx</value>
                
</entry>
                
<entry key="key2">
                    
<ref bean="cc1"/>
                
</entry>
            
</map>
        
</property>
        
<property name="props">
            
<props>
                
<prop key="key1">xxx</prop>
                
<prop key="key2">yyy</prop>
            
</props>
        
</property>
        
<property name="child">
            
<list>
                
<ref bean="cc1"/>
                
<ref bean="cc2"/>
            
</list>
        
</property>
    
</bean>
    
<bean id="cc1" class="com.open.bean.ChildBean"/>
    
<bean id="cc2" class="com.open.bean.ChildBean"/>
</beans>
‹¹‹è¯•代ç 
package com.open.bean;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test1 {
    
public static void main(String[] args) {
        ClassPathXmlApplicationContext cx
=
            
new ClassPathXmlApplicationContext("bean.xml");
        BeanSet bs
=(BeanSet)cx.getBean("bs");
        String[] str1
=bs.getStr1();
        String[] str2
=bs.getStr1();
        List lst
=bs.getLst();
        Map map
=bs.getMap();
        Properties props
=bs.getProps();
        ChildBean[] cb
=bs.getChild();
        System.out.println(
"str1="+"["+str1[0]+","+str1[1]+"]");
        System.out.println(
"str2="+"["+str2[0]+","+str2[1]+"]");
        System.out.println(
"lst="+lst);
        System.out.println(
"map="+map);
        System.out.println(
"props="+props);
        System.out.println(
"cb="+"["+cb[0]+","+cb[1]+"]");
    }

}
输出¾l“æžœ
str1=[value1,value2]
str2
=[value1,value2]
lst
=[value5, com.open.bean.ChildBean@1df073d]
map
={key1=xxx, key2=com.open.bean.ChildBean@1df073d}
props
={key2=yyy, key1=xxx}
cb
=[com.open.bean.ChildBean@1df073d,com.open.bean.ChildBean@1546e25]


]]>
Spring加è²å¤šä¸ªé…置文äšghttp://www.aygfsteel.com/xfan/archive/2006/06/07/51061.html~ž®Q~ž®QWed, 07 Jun 2006 03:13:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/07/51061.htmlhttp://www.aygfsteel.com/xfan/comments/51061.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/07/51061.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/51061.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/51061.html
ApplicationContext act=new ClassPathXmlApplicationContext(new String[] {"bean1.xml","bean2.xml"});
    
对于BeanFactory
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader 
= new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(
new ClassPathResource("bean1.xml"));
reader.loadBeanDefinitions(
new ClassPathResource("bean2.xml"));
BeanFactory bf
=(BeanFactory)reg;



]]>
spring如何引用propertiesæ–‡äšg里的é…ç½®http://www.aygfsteel.com/xfan/archive/2006/06/07/51006.html~ž®Q~ž®QTue, 06 Jun 2006 18:40:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/07/51006.htmlhttp://www.aygfsteel.com/xfan/comments/51006.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/07/51006.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/51006.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/51006.html它是把属性中的定义的å˜é‡(var)替代,spring的酾|®æ–‡ä»¶ä¸­ä½¿ç”¨${var}çš„å ä½ç¬¦
<beans>
<bean id="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
          
<property name="location"><value>db.properties</value></property>
</bean> 
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
    
<property name="url"><value>${jdbc.url}</value></property>
    
<property name="username"><value>${jdbc.username}</value></property>
    
<property name="password"><value>${jdbc.password}</value></property>
</bean>
</beans>
db.propertiesæ–‡äšg
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://production:9002
jdbc.username=sa
jdbc.password=root
2.PropertyOverrideConfigurer¾c?br />è·ŸPropertyPlaceholderConfigureråŠŸèƒ½ä¸€æ øP¼Œä¸è¿‡ç”¨æ³•ä¸ä¸€æ ?ä¸ç”¨å ä½½W¦ï¼Œåœ¨å±žæ€§æ–‡ä»¶ä¸­
直接定义属性的å€û|¼Œ˜q™æ ·ž®±å…许有默认å€?br />
<beans>
<bean id="configBean" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
           
<property name="location"><value>db.properties</value></property>
</bean> 
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    
<property name="driverClassName"><value>org.hsqldb.jdbcDriver</value></property>
    
<property name="url"><value>jdbc:hsqldb:hsql://production:9002</value></property>
    
<property name="username"><value>test</value></property>
    
<property name="password"><value>123456</value></property>
</bean>
</beans>
db.propertiesæ–‡äšg
dataSource.username=admin
dataSource.password=9527
在bean实例æ—Óž¼Œadmin,9527ž®†æ›¿ä»£test,123456
3å…¶ä»–
1)如果需è¦å¼•用多个属性,ž®?font color="#0000ff">configBean
属性改�br />
<property name="locations">
<list>
<value>db.properties</value>
<value>db1.properties</value>
</list>
</property>
2)在ApplactionContext中是自动调用BeanFactoryPostProcessor接å£çš„,如果è¦åœ¨BeanFactory中ä‹É用,必须手动æ·ÕdŠ :
XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
PropertyPlaceholderConfigurer cfg 
= new PropertyPlaceholderConfigurer();
cfg.setLocation(
new FileSystemResource("jdbc.properties"));
cfg.postProcessBeanFactory(factory);


~ž®Q 2006-06-07 02:40 å‘表评论
]]>spring中自定义属性编辑器http://www.aygfsteel.com/xfan/archive/2006/06/06/50920.html~ž®Q~ž®QTue, 06 Jun 2006 13:48:00 GMThttp://www.aygfsteel.com/xfan/archive/2006/06/06/50920.htmlhttp://www.aygfsteel.com/xfan/comments/50920.htmlhttp://www.aygfsteel.com/xfan/archive/2006/06/06/50920.html#Feedback0http://www.aygfsteel.com/xfan/comments/commentRss/50920.htmlhttp://www.aygfsteel.com/xfan/services/trackbacks/50920.html例å­:
Person¾c?br />
package com.open.bean;
public class Person {
    PhoneNumber phoneNumber;
    
//set,getæ–ÒŽ³•çœç•¥
}
PhoneNumber¾c?br />
package com.open.bean;
public class PhoneNumber {
    
private String areaCode;
    
private String number;
    
public PhoneNumber(String areaCode,String number ) {
        
this.areaCode=areaCode;
        
this.number=number;
    }

    
//set,getæ–ÒŽ³•çœç•¥
}
自定义属性器PhoneEditor
package com.open.bean;
import java.beans.PropertyEditorSupport;
public class PhoneEditor extends PropertyEditorSupport {
    
public void setAsText(String textValue) throws IllegalArgumentException {
        String []str
=textValue.split("-");
        
if(str!=null&&str.length==2) {
            PhoneNumber pn
=new PhoneNumber(str[0],str[1]);
            setValue(pn);
        }
else {
            setValue(
new PhoneNumber("0000","0000000"));
        }
    
    }

}

利用PhoneEdioråQŒåœ¨xmlæ–‡äšg中就å¯ä»¥˜q™ä¹ˆé…ç½®Person¾cÖMº†
<beans><!--注册¾~–辑å™?/span>-->
    
<bean id="customEditorConfigurer" 
        class
="org.springframework.beans.factory.config.CustomEditorConfigurer">
        
<property name="customEditors">
            
<map>
                
<entry key="com.open.bean.PhoneNumber">
                    
<bean id="phoneEditor" class="com.open.bean.PhoneEditor"/>
                
</entry>
            
</map>
        
</property>
    
</bean>
    
<bean id="person" class="com.open.bean.Person">
        
<property name="phoneNumber" value="0731-8888888"/>
    
</bean>
</beans>

spring默认æä¾›ä»¥ä¸‹å±žæ€§ç¼–辑器åQŒä¸ç”¨æ³¨å†?br />ClassEditor  使用包å«å…¨ç§°å的字符串设¾|®java.lang.Class属æ€?br />CustomDateEditor  使用æŸç§java.text.DateFormat对象ž®†ä¸€ä¸ªå­—½W¦ä¸²è®„¡½®¾l™java.util.Date属æ€?br />FileEditor  ä½¿ç”¨åŒ…å«æ–‡äšg路径的字½W¦ä¸²è®„¡½®java.io.File属æ€?br />LocalEditor  讄¡½®java.util.Local属æ€?br />StringArrayPropertyEditor  ž®†ä¸€ä¸ªåŒ…å«é€—å·çš„String转化æˆString数组
StringTrimmerEditor  自动修正字符串属性,å¯ä»¥é€‰æ‹©ž®†ç©ºå­—ç¬¦è½¬å˜æˆnull

~ž®Q 2006-06-06 21:48 å‘表评论
]]>
spring中Bean的生命周æœ?/title><link>http://www.aygfsteel.com/xfan/archive/2006/06/06/50883.html</link><dc:creator>~ž®Q</dc:creator><author>~ž®Q</author><pubDate>Tue, 06 Jun 2006 11:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/xfan/archive/2006/06/06/50883.html</guid><wfw:comment>http://www.aygfsteel.com/xfan/comments/50883.html</wfw:comment><comments>http://www.aygfsteel.com/xfan/archive/2006/06/06/50883.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xfan/comments/commentRss/50883.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xfan/services/trackbacks/50883.html</trackback:ping><description><![CDATA[先脓代ç åQ?br />Life¾c? <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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> com.open.bean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.BeansException;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.BeanFactory;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.BeanFactoryAware;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.BeanNameAware;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.DisposableBean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.InitializingBean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.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"> Life </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> BeanFactoryAware, BeanNameAware,<br /><img id="Codehighlighter1_454_1447_Open_Image" onclick="this.style.display='none'; Codehighlighter1_454_1447_Open_Text.style.display='none'; Codehighlighter1_454_1447_Closed_Image.style.display='inline'; Codehighlighter1_454_1447_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_454_1447_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_454_1447_Closed_Text.style.display='none'; Codehighlighter1_454_1447_Open_Image.style.display='inline'; Codehighlighter1_454_1447_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />        InitializingBean, DisposableBean </span><span id="Codehighlighter1_454_1447_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><span id="Codehighlighter1_454_1447_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> String msg;<br /><img id="Codehighlighter1_492_559_Open_Image" onclick="this.style.display='none'; Codehighlighter1_492_559_Open_Text.style.display='none'; Codehighlighter1_492_559_Closed_Image.style.display='inline'; Codehighlighter1_492_559_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_492_559_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_492_559_Closed_Text.style.display='none'; Codehighlighter1_492_559_Open_Image.style.display='inline'; Codehighlighter1_492_559_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"> Life() </span><span id="Codehighlighter1_492_559_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><span id="Codehighlighter1_492_559_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">msg=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">msg);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">构造函æ•?/span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_636_679_Open_Image" onclick="this.style.display='none'; Codehighlighter1_636_679_Open_Text.style.display='none'; Codehighlighter1_636_679_Closed_Image.style.display='inline'; Codehighlighter1_636_679_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_636_679_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_636_679_Closed_Text.style.display='none'; Codehighlighter1_636_679_Open_Image.style.display='inline'; Codehighlighter1_636_679_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"> setBeanFactory(BeanFactory beanFactory) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> BeansException </span><span id="Codehighlighter1_636_679_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><span id="Codehighlighter1_636_679_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">setBeanFactory</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_719_759_Open_Image" onclick="this.style.display='none'; Codehighlighter1_719_759_Open_Text.style.display='none'; Codehighlighter1_719_759_Closed_Image.style.display='inline'; Codehighlighter1_719_759_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_719_759_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_719_759_Closed_Text.style.display='none'; Codehighlighter1_719_759_Open_Image.style.display='inline'; Codehighlighter1_719_759_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"> setBeanName(String name) </span><span id="Codehighlighter1_719_759_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><span id="Codehighlighter1_719_759_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">setBeanName</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_781_813_Open_Image" onclick="this.style.display='none'; Codehighlighter1_781_813_Open_Text.style.display='none'; Codehighlighter1_781_813_Closed_Image.style.display='inline'; Codehighlighter1_781_813_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_781_813_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_781_813_Closed_Text.style.display='none'; Codehighlighter1_781_813_Open_Image.style.display='inline'; Codehighlighter1_781_813_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"> init() </span><span id="Codehighlighter1_781_813_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><span id="Codehighlighter1_781_813_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">åˆå§‹åŒ?/span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Object postProcessBeforeInitialization(Object bean, String beanName)<br /><img id="Codehighlighter1_917_992_Open_Image" onclick="this.style.display='none'; Codehighlighter1_917_992_Open_Text.style.display='none'; Codehighlighter1_917_992_Closed_Image.style.display='inline'; Codehighlighter1_917_992_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_917_992_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_917_992_Closed_Text.style.display='none'; Codehighlighter1_917_992_Open_Image.style.display='inline'; Codehighlighter1_917_992_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> BeansException </span><span id="Codehighlighter1_917_992_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><span id="Codehighlighter1_917_992_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">postProcessBeforeInitialization</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Object postProcessAfterInitialization(Object bean, String beanName)<br /><img id="Codehighlighter1_1095_1169_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1095_1169_Open_Text.style.display='none'; Codehighlighter1_1095_1169_Closed_Image.style.display='inline'; Codehighlighter1_1095_1169_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1095_1169_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1095_1169_Closed_Text.style.display='none'; Codehighlighter1_1095_1169_Open_Image.style.display='inline'; Codehighlighter1_1095_1169_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> BeansException </span><span id="Codehighlighter1_1095_1169_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><span id="Codehighlighter1_1095_1169_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">postProcessAfterInitialization</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_1222_1269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1222_1269_Open_Text.style.display='none'; Codehighlighter1_1222_1269_Closed_Image.style.display='inline'; Codehighlighter1_1222_1269_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1222_1269_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1222_1269_Closed_Text.style.display='none'; Codehighlighter1_1222_1269_Open_Image.style.display='inline'; Codehighlighter1_1222_1269_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"> afterPropertiesSet() </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id="Codehighlighter1_1222_1269_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><span id="Codehighlighter1_1222_1269_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">afterPropertiesSet</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_1311_1347_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1311_1347_Open_Text.style.display='none'; Codehighlighter1_1311_1347_Closed_Image.style.display='inline'; Codehighlighter1_1311_1347_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1311_1347_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1311_1347_Closed_Text.style.display='none'; Codehighlighter1_1311_1347_Open_Image.style.display='inline'; Codehighlighter1_1311_1347_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 style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id="Codehighlighter1_1311_1347_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><span id="Codehighlighter1_1311_1347_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">destroy</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_1373_1390_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1373_1390_Open_Text.style.display='none'; Codehighlighter1_1373_1390_Closed_Image.style.display='inline'; Codehighlighter1_1373_1390_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1373_1390_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1373_1390_Closed_Text.style.display='none'; Codehighlighter1_1373_1390_Open_Image.style.display='inline'; Codehighlighter1_1373_1390_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"> String getMsg() </span><span id="Codehighlighter1_1373_1390_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><span id="Codehighlighter1_1373_1390_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> msg;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_1424_1445_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1424_1445_Open_Text.style.display='none'; Codehighlighter1_1424_1445_Closed_Image.style.display='inline'; Codehighlighter1_1424_1445_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1424_1445_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1424_1445_Closed_Text.style.display='none'; Codehighlighter1_1424_1445_Open_Image.style.display='inline'; Codehighlighter1_1424_1445_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"> setMsg(String msg) </span><span id="Codehighlighter1_1424_1445_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><span id="Codehighlighter1_1424_1445_Open_Text"><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">.msg </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> msg;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>BeanPostProcessorImp¾c? <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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> com.open.bean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.BeansException;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.config.BeanPostProcessor;<br /><img id="Codehighlighter1_202_560_Open_Image" onclick="this.style.display='none'; Codehighlighter1_202_560_Open_Text.style.display='none'; Codehighlighter1_202_560_Closed_Image.style.display='inline'; Codehighlighter1_202_560_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_202_560_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_202_560_Closed_Text.style.display='none'; Codehighlighter1_202_560_Open_Image.style.display='inline'; Codehighlighter1_202_560_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"> BeanPostProcessorImp </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> BeanPostProcessor </span><span id="Codehighlighter1_202_560_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><span id="Codehighlighter1_202_560_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Object postProcessBeforeInitialization(Object bean, String beanName)<br /><img id="Codehighlighter1_306_381_Open_Image" onclick="this.style.display='none'; Codehighlighter1_306_381_Open_Text.style.display='none'; Codehighlighter1_306_381_Closed_Image.style.display='inline'; Codehighlighter1_306_381_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_306_381_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_306_381_Closed_Text.style.display='none'; Codehighlighter1_306_381_Open_Image.style.display='inline'; Codehighlighter1_306_381_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> BeansException </span><span id="Codehighlighter1_306_381_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><span id="Codehighlighter1_306_381_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">postProcessBeforeInitialization</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> bean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Object postProcessAfterInitialization(Object bean, String beanName)<br /><img id="Codehighlighter1_484_558_Open_Image" onclick="this.style.display='none'; Codehighlighter1_484_558_Open_Text.style.display='none'; Codehighlighter1_484_558_Closed_Image.style.display='inline'; Codehighlighter1_484_558_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_484_558_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_484_558_Closed_Text.style.display='none'; Codehighlighter1_484_558_Open_Image.style.display='inline'; Codehighlighter1_484_558_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> BeansException </span><span id="Codehighlighter1_484_558_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><span id="Codehighlighter1_484_558_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">postProcessAfterInitialization</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> bean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>BeanCounter¾c? <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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> com.open.bean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.BeansException;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.config.BeanFactoryPostProcessor;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.beans.factory.config.ConfigurableListableBeanFactory;<br /><img id="Codehighlighter1_288_470_Open_Image" onclick="this.style.display='none'; Codehighlighter1_288_470_Open_Text.style.display='none'; Codehighlighter1_288_470_Closed_Image.style.display='inline'; Codehighlighter1_288_470_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_288_470_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_288_470_Closed_Text.style.display='none'; Codehighlighter1_288_470_Open_Image.style.display='inline'; Codehighlighter1_288_470_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"> BeanCounter </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> BeanFactoryPostProcessor </span><span id="Codehighlighter1_288_470_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><span id="Codehighlighter1_288_470_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> postProcessBeanFactory(<br /><img id="Codehighlighter1_397_468_Open_Image" onclick="this.style.display='none'; Codehighlighter1_397_468_Open_Text.style.display='none'; Codehighlighter1_397_468_Closed_Image.style.display='inline'; Codehighlighter1_397_468_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_397_468_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_397_468_Closed_Text.style.display='none'; Codehighlighter1_397_468_Open_Image.style.display='inline'; Codehighlighter1_397_468_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            ConfigurableListableBeanFactory beanFactory) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> BeansException </span><span id="Codehighlighter1_397_468_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><span id="Codehighlighter1_397_468_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">¾cÈš„æ•°é‡åQ?/span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">beanFactory.getBeanDefinitionCount());<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>bean.xml <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="COLOR: #000000"><?</span><span style="COLOR: #000000">xml version</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> encoding</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">UTF-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #000000"><!</span><span style="COLOR: #000000">DOCTYPE beans PUBLIC </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-//SPRING//DTD BEAN//EN</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.springframework.org/dtd/spring-beans.dtd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">beans</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">bean id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">life</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">life_name</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">com.open.bean.Life</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> <br />        init</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">method</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">init</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">property name</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"> value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">lifexxxx</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br />    </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">bean</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">    <br />    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">bean id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">processor</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">com.open.bean.BeanPostProcessorImp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br />    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">bean id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">counter</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">com.open.bean.BeanCounter</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">beans</span><span style="COLOR: #000000">></span></div>‹¹‹è¯•¾c? <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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> com.open.bean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.springframework.context.support.ClassPathXmlApplicationContext;<br /><img id="Codehighlighter1_116_295_Open_Image" onclick="this.style.display='none'; Codehighlighter1_116_295_Open_Text.style.display='none'; Codehighlighter1_116_295_Closed_Image.style.display='inline'; Codehighlighter1_116_295_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_116_295_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_116_295_Closed_Text.style.display='none'; Codehighlighter1_116_295_Open_Image.style.display='inline'; Codehighlighter1_116_295_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"> Test </span><span id="Codehighlighter1_116_295_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/images/dot.gif" /></span><span id="Codehighlighter1_116_295_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_158_293_Open_Image" onclick="this.style.display='none'; Codehighlighter1_158_293_Open_Text.style.display='none'; Codehighlighter1_158_293_Closed_Image.style.display='inline'; Codehighlighter1_158_293_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_158_293_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_158_293_Closed_Text.style.display='none'; Codehighlighter1_158_293_Open_Image.style.display='inline'; Codehighlighter1_158_293_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">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span id="Codehighlighter1_158_293_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><span id="Codehighlighter1_158_293_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        ClassPathXmlApplicationContext cx</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ClassPathXmlApplicationContext(</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.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />         Life life</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(Life)cx.getBean(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">life</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);     <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000">    </span></div>输出¾l“æžœ <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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">¾cÈš„æ•°é‡åQ?/span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />msg</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000"><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" />setBeanName<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />setBeanFactory<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />postProcessBeforeInitialization<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />afterPropertiesSet<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" />postProcessAfterInitialization</span></div>解释åQ?br />调用BeanFactoryPostProcessor接å£çš„postProcessBeanFactoryæ–ÒŽ³•<br />-->实例åŒ?调用构造函æ•?->讄¡½®å±žæ€§å€?br />-->调用BeanNameAwareçš„setBeanName()æ–ÒŽ³•<br />-->调用BeanFactoryAware接å£çš„setBeanFactory<br />-->调用BeanPostProcessor接å£çš„postProcessBeforeInitialization()<br />-->调用InitializingBean接å£çš„afterPropertiesSet()<br />-->调用bean.xml中制定的init-method指定init()æ–ÒŽ³•<br />-->调用BeanPostProcessor接å£çš„postProcessAfterInitialization()<br />容器关闭<br />-->DisposableBean接å£çš„destroy()<br />-->调用bean.xml中制定的destroy-method指定的go()æ–ÒŽ³•<br /><br /><br /><img src ="http://www.aygfsteel.com/xfan/aggbug/50883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xfan/" target="_blank">~ž®Q</a> 2006-06-06 19:56 <a href="http://www.aygfsteel.com/xfan/archive/2006/06/06/50883.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>