﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Never give up!-随笔分类-spring</title><link>http://www.blogjava.net/Jluoguang/category/36633.html</link><description>                              把心放平 切忌浮躁</description><language>zh-cn</language><lastBuildDate>Sat, 28 Mar 2009 23:20:35 GMT</lastBuildDate><pubDate>Sat, 28 Mar 2009 23:20:35 GMT</pubDate><ttl>60</ttl><item><title>Spring IoC的简单实现1</title><link>http://www.blogjava.net/Jluoguang/archive/2009/03/26/262067.html</link><dc:creator>Jlg</dc:creator><author>Jlg</author><pubDate>Thu, 26 Mar 2009 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/Jluoguang/archive/2009/03/26/262067.html</guid><wfw:comment>http://www.blogjava.net/Jluoguang/comments/262067.html</wfw:comment><comments>http://www.blogjava.net/Jluoguang/archive/2009/03/26/262067.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jluoguang/comments/commentRss/262067.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jluoguang/services/trackbacks/262067.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 先定义一个BeanDefinitionpublic&nbsp;class&nbsp;BeanDefinition&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;id;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;className;&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jluoguang/archive/2009/03/26/262067.html'>阅读全文</a><img src ="http://www.blogjava.net/Jluoguang/aggbug/262067.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jluoguang/" target="_blank">Jlg</a> 2009-03-26 14:41 <a href="http://www.blogjava.net/Jluoguang/archive/2009/03/26/262067.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Inject Bean By Annotation</title><link>http://www.blogjava.net/Jluoguang/archive/2008/12/17/246759.html</link><dc:creator>Jlg</dc:creator><author>Jlg</author><pubDate>Tue, 16 Dec 2008 17:17:00 GMT</pubDate><guid>http://www.blogjava.net/Jluoguang/archive/2008/12/17/246759.html</guid><wfw:comment>http://www.blogjava.net/Jluoguang/comments/246759.html</wfw:comment><comments>http://www.blogjava.net/Jluoguang/archive/2008/12/17/246759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jluoguang/comments/commentRss/246759.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jluoguang/services/trackbacks/246759.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Spring IoC容器允许BeanFactoryPostProcessor在容器实际实例化任何其它的bean之前读取配置元数据，并有可能修改它。本文就是以annotation的方式对bean进行依赖注入。代码如下：Annotationimport&nbsp;java.lang.annotation.Inherited;import&nbsp;java.lang.annotat...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jluoguang/archive/2008/12/17/246759.html'>阅读全文</a><img src ="http://www.blogjava.net/Jluoguang/aggbug/246759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jluoguang/" target="_blank">Jlg</a> 2008-12-17 01:17 <a href="http://www.blogjava.net/Jluoguang/archive/2008/12/17/246759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring IoC 硬编码</title><link>http://www.blogjava.net/Jluoguang/archive/2008/12/12/245820.html</link><dc:creator>Jlg</dc:creator><author>Jlg</author><pubDate>Thu, 11 Dec 2008 18:26:00 GMT</pubDate><guid>http://www.blogjava.net/Jluoguang/archive/2008/12/12/245820.html</guid><wfw:comment>http://www.blogjava.net/Jluoguang/comments/245820.html</wfw:comment><comments>http://www.blogjava.net/Jluoguang/archive/2008/12/12/245820.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jluoguang/comments/commentRss/245820.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jluoguang/services/trackbacks/245820.html</trackback:ping><description><![CDATA[这几天一直在看spring的源码，也多亏了JE上jiwenke大哥的ioc解析，让我有种播开乌云见天日的感觉。就像武侠剧里的楞头小年青，捡了本不世秘笈，功力尚浅，差点走火入魔。spring真的是博大精深的家伙，它把一些深层次的东西都隐藏了，让人只看到表面的东东。本文就是针对于此，通过硬编码的方式，更加的了解spring ioc的实现机制。<br />
<br />
Spring IoC 容器和上下文的初始化包括Bean定义信息的资源定位，载入和注册过程，这里采用了硬编码忽略掉定义信息的资源定位这一环节。<br />
<span style="color: #404cff"><br />
</span><span style="color: #303dff">DefaultSingletonBeanRegistry<br />
&nbsp;&nbsp; ---AbstractBeanFactory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---AbstractAutowireCapableBeanFactory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---DefaultListableBeanFactory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---XmlBeanFactory</span><br />
<br />
XmlBeanFactory把DefaultListableBeanFactory作为ioc容器的实现<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;XmlBeanFactory(Resource&nbsp;resource,&nbsp;BeanFactory&nbsp;parentBeanFactory)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;BeansException<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">(parentBeanFactory);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlBeanDefinitionReader(</span><span style="color: #0000ff">this</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.loadBeanDefinitions(resource);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br />
下面先介绍下几个概念：<br />
<span style="color: #303dff">BeanDefinition </span>Bean定义信息<br />
<span style="color: #303dff">BeanFactory </span>Bean工厂<br />
<span style="color: #303dff">BeanDefinitionRegistry </span>注册器的接口<br />
<span style="color: #303dff">MutablePropertyValues </span>属性集合类<br />
<span style="color: #303dff">RootBeanDefinition </span>BeanDefinition的实现<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_35_262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_262_Open_Text.style.display='none'; Codehighlighter1_35_262_Closed_Image.style.display='inline'; Codehighlighter1_35_262_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_35_262_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_35_262_Closed_Text.style.display='none'; Codehighlighter1_35_262_Open_Image.style.display='inline'; Codehighlighter1_35_262_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;DaoA&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;IDaoA&nbsp;</span><span id="Codehighlighter1_35_262_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_35_262_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;param;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_89_148_Open_Image" onclick="this.style.display='none'; Codehighlighter1_89_148_Open_Text.style.display='none'; Codehighlighter1_89_148_Closed_Image.style.display='inline'; Codehighlighter1_89_148_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_89_148_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_89_148_Closed_Text.style.display='none'; Codehighlighter1_89_148_Open_Image.style.display='inline'; Codehighlighter1_89_148_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;operationA()&nbsp;</span><span id="Codehighlighter1_89_148_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_89_148_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">DaoA.operationA(</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;param&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_177_196_Open_Image" onclick="this.style.display='none'; Codehighlighter1_177_196_Open_Text.style.display='none'; Codehighlighter1_177_196_Closed_Image.style.display='inline'; Codehighlighter1_177_196_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_177_196_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_177_196_Closed_Text.style.display='none'; Codehighlighter1_177_196_Open_Image.style.display='inline'; Codehighlighter1_177_196_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getParam()&nbsp;</span><span id="Codehighlighter1_177_196_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_177_196_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;param;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_235_260_Open_Image" onclick="this.style.display='none'; Codehighlighter1_235_260_Open_Text.style.display='none'; Codehighlighter1_235_260_Closed_Image.style.display='inline'; Codehighlighter1_235_260_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_235_260_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_235_260_Closed_Text.style.display='none'; Codehighlighter1_235_260_Open_Image.style.display='inline'; Codehighlighter1_235_260_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setParam(String&nbsp;param)&nbsp;</span><span id="Codehighlighter1_235_260_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_235_260_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.param&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;param;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_300_377_Open_Image" onclick="this.style.display='none'; Codehighlighter1_300_377_Open_Text.style.display='none'; Codehighlighter1_300_377_Closed_Image.style.display='inline'; Codehighlighter1_300_377_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_300_377_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_300_377_Closed_Text.style.display='none'; Codehighlighter1_300_377_Open_Image.style.display='inline'; Codehighlighter1_300_377_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;DaoB&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;IDaoB&nbsp;</span><span id="Codehighlighter1_300_377_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_300_377_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_329_375_Open_Image" onclick="this.style.display='none'; Codehighlighter1_329_375_Open_Text.style.display='none'; Codehighlighter1_329_375_Closed_Image.style.display='inline'; Codehighlighter1_329_375_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_329_375_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_329_375_Closed_Text.style.display='none'; Codehighlighter1_329_375_Open_Image.style.display='inline'; Codehighlighter1_329_375_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;operationB()&nbsp;</span><span id="Codehighlighter1_329_375_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_329_375_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">DaoB.operationB()</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_420_879_Open_Image" onclick="this.style.display='none'; Codehighlighter1_420_879_Open_Text.style.display='none'; Codehighlighter1_420_879_Closed_Image.style.display='inline'; Codehighlighter1_420_879_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_420_879_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_420_879_Closed_Text.style.display='none'; Codehighlighter1_420_879_Open_Image.style.display='inline'; Codehighlighter1_420_879_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Service&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;IService&nbsp;</span><span id="Codehighlighter1_420_879_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_420_879_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;IDaoA&nbsp;daoA&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;IDaoB&nbsp;daoB&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_506_669_Open_Image" onclick="this.style.display='none'; Codehighlighter1_506_669_Open_Text.style.display='none'; Codehighlighter1_506_669_Closed_Image.style.display='inline'; Codehighlighter1_506_669_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_506_669_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_506_669_Closed_Text.style.display='none'; Codehighlighter1_506_669_Open_Image.style.display='inline'; Codehighlighter1_506_669_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;service()&nbsp;</span><span id="Codehighlighter1_506_669_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_506_669_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">********service&nbsp;begin&nbsp;***********</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daoA.operationA();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daoB.operationB();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">********service&nbsp;end&nbsp;*************</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_696_714_Open_Image" onclick="this.style.display='none'; Codehighlighter1_696_714_Open_Text.style.display='none'; Codehighlighter1_696_714_Closed_Image.style.display='inline'; Codehighlighter1_696_714_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_696_714_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_696_714_Closed_Text.style.display='none'; Codehighlighter1_696_714_Open_Image.style.display='inline'; Codehighlighter1_696_714_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;IDaoA&nbsp;getDaoA()&nbsp;</span><span id="Codehighlighter1_696_714_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_696_714_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;daoA;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_750_773_Open_Image" onclick="this.style.display='none'; Codehighlighter1_750_773_Open_Text.style.display='none'; Codehighlighter1_750_773_Closed_Image.style.display='inline'; Codehighlighter1_750_773_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_750_773_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_750_773_Closed_Text.style.display='none'; Codehighlighter1_750_773_Open_Image.style.display='inline'; Codehighlighter1_750_773_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setDaoA(IDaoA&nbsp;daoA)&nbsp;</span><span id="Codehighlighter1_750_773_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_750_773_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.daoA&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;daoA;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_800_818_Open_Image" onclick="this.style.display='none'; Codehighlighter1_800_818_Open_Text.style.display='none'; Codehighlighter1_800_818_Closed_Image.style.display='inline'; Codehighlighter1_800_818_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_800_818_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_800_818_Closed_Text.style.display='none'; Codehighlighter1_800_818_Open_Image.style.display='inline'; Codehighlighter1_800_818_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;IDaoB&nbsp;getDaoB()&nbsp;</span><span id="Codehighlighter1_800_818_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_800_818_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;daoB;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_854_877_Open_Image" onclick="this.style.display='none'; Codehighlighter1_854_877_Open_Text.style.display='none'; Codehighlighter1_854_877_Closed_Image.style.display='inline'; Codehighlighter1_854_877_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_854_877_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_854_877_Closed_Text.style.display='none'; Codehighlighter1_854_877_Open_Image.style.display='inline'; Codehighlighter1_854_877_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setDaoB(IDaoB&nbsp;daoB)&nbsp;</span><span id="Codehighlighter1_854_877_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_854_877_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.daoB&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;daoB;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.beans.MutablePropertyValues;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.beans.factory.BeanFactory;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.beans.factory.config.RuntimeBeanReference;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.beans.factory.support.BeanDefinitionRegistry;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.beans.factory.support.DefaultListableBeanFactory;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.springframework.beans.factory.support.RootBeanDefinition;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_1307_2689_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1307_2689_Open_Text.style.display='none'; Codehighlighter1_1307_2689_Closed_Image.style.display='inline'; Codehighlighter1_1307_2689_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1307_2689_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1307_2689_Closed_Text.style.display='none'; Codehighlighter1_1307_2689_Open_Image.style.display='inline'; Codehighlighter1_1307_2689_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HardCodeIoc&nbsp;</span><span id="Codehighlighter1_1307_2689_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1307_2689_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1350_2687_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1350_2687_Open_Text.style.display='none'; Codehighlighter1_1350_2687_Closed_Image.style.display='inline'; Codehighlighter1_1350_2687_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1350_2687_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1350_2687_Closed_Text.style.display='none'; Codehighlighter1_1350_2687_Open_Image.style.display='inline'; Codehighlighter1_1350_2687_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_1350_2687_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1350_2687_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;注册器</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BeanDefinitionRegistry&nbsp;register&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DefaultListableBeanFactory();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1436_1466_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1436_1466_Open_Text.style.display='none'; Codehighlighter1_1436_1466_Closed_Image.style.display='inline'; Codehighlighter1_1436_1466_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1436_1466_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1436_1466_Closed_Text.style.display='none'; Codehighlighter1_1436_1466_Open_Image.style.display='inline'; Codehighlighter1_1436_1466_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1436_1466_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1436_1466_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;DaoA的属性集(DaoB没有属性这里就不做表示)&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MutablePropertyValues&nbsp;daoAProperties&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MutablePropertyValues();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daoAProperties.addPropertyValue(</span><span style="color: #000000">"</span><span style="color: #000000">param</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">param1</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1597_1613_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1597_1613_Open_Text.style.display='none'; Codehighlighter1_1597_1613_Closed_Image.style.display='inline'; Codehighlighter1_1597_1613_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1597_1613_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1597_1613_Closed_Text.style.display='none'; Codehighlighter1_1597_1613_Open_Image.style.display='inline'; Codehighlighter1_1597_1613_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1597_1613_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1597_1613_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;Service的属性集&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MutablePropertyValues&nbsp;serviceProperties&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MutablePropertyValues();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceProperties.addPropertyValue(</span><span style="color: #000000">"</span><span style="color: #000000">daoA</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RuntimeBeanReference(</span><span style="color: #000000">"</span><span style="color: #000000">daoA</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceProperties.addPropertyValue(</span><span style="color: #000000">"</span><span style="color: #000000">daoB</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RuntimeBeanReference(</span><span style="color: #000000">"</span><span style="color: #000000">daoB</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1853_1888_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1853_1888_Open_Text.style.display='none'; Codehighlighter1_1853_1888_Closed_Image.style.display='inline'; Codehighlighter1_1853_1888_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1853_1888_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1853_1888_Closed_Text.style.display='none'; Codehighlighter1_1853_1888_Open_Image.style.display='inline'; Codehighlighter1_1853_1888_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1853_1888_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1853_1888_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;分别构造DaoA,DaoB,Service的Bean定义信息&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RootBeanDefinition&nbsp;daoADefinition&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RootBeanDefinition(DaoA.</span><span style="color: #0000ff">class</span><span style="color: #000000">,&nbsp;daoAProperties);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RootBeanDefinition&nbsp;daoBDefinition&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RootBeanDefinition(DaoB.</span><span style="color: #0000ff">class</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RootBeanDefinition&nbsp;serviceDefinition&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RootBeanDefinition(Service.</span><span style="color: #0000ff">class</span><span style="color: #000000">,&nbsp;serviceProperties);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2164_2192_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2164_2192_Open_Text.style.display='none'; Codehighlighter1_2164_2192_Closed_Image.style.display='inline'; Codehighlighter1_2164_2192_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2164_2192_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2164_2192_Closed_Text.style.display='none'; Codehighlighter1_2164_2192_Open_Image.style.display='inline'; Codehighlighter1_2164_2192_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2164_2192_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_2164_2192_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;把DaoA,DaoB,Service注册到工厂&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register.registerBeanDefinition(</span><span style="color: #000000">"</span><span style="color: #000000">daoA</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;daoADefinition);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register.registerBeanDefinition(</span><span style="color: #000000">"</span><span style="color: #000000">daoB</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;daoBDefinition);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register.registerBeanDefinition(</span><span style="color: #000000">"</span><span style="color: #000000">service</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;serviceDefinition);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;转化为Bean工厂容器</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BeanFactory&nbsp;beanFactory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(BeanFactory)&nbsp;register;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDaoA&nbsp;daoA&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(IDaoA)&nbsp;beanFactory.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">daoA</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDaoB&nbsp;daoB&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(IDaoB)&nbsp;beanFactory.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">daoB</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IService&nbsp;service&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(IService)&nbsp;beanFactory.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">service</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daoA.operationA();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daoB.operationB();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;service.service();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<br />
打印结果如下：<br />
DaoA.operationA(param1)<br />
DaoB.operationB()<br />
********service begin ***********<br />
DaoA.operationA(param1)<br />
DaoB.operationB()<br />
********service end *************<br />
<br />
了解了这几个概念后就可以利用BeanFactory的后配置处理配合annotation进行自动注入了，省却了xml配置的麻烦。<br />
<img src ="http://www.blogjava.net/Jluoguang/aggbug/245820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jluoguang/" target="_blank">Jlg</a> 2008-12-12 02:26 <a href="http://www.blogjava.net/Jluoguang/archive/2008/12/12/245820.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>