{"rsdb":{"rid":"156655","subhead":"","postdate":"0","aid":"117576","fid":"54","uid":"1","topic":"1","content":"

IOC\u4e2d\u6587\u662f\u63a7\u5236\u53cd\u8f6c\uff0c\u5373\u662f\u67d0\u4e00\u63a5\u53e3\u5177\u4f53\u5b9e\u73b0\u7c7b\u7684\u9009\u62e9\u63a7\u5236\u6743\u4ece\u8c03\u7528\u7c7b\u4e2d\u79fb\u9664\uff0c\u8f6c\u4ea4\u7ed9\u7b2c\u4e09\u65b9\u51b3\u5b9a\u3002\u4ece\u800c\u89e3\u9664\u4e86\u67d0\u4e00\u63a5\u53e3\u5bf9\u5b9e\u73b0\u7c7b\u7684\u76f4\u63a5\u4f9d\u8d56\u3002<\/p>

\u4e3b\u8981\u5206\u4e3a\u6784\u9020\u51fd\u6570\u6ce8\u5165\uff0c\u5c5e\u6027\u6ce8\u5165\uff0c\u63a5\u53e3\u6ce8\u5165<\/p>

\u6784\u9020\u51fd\u6570\u6ce8\u5165<\/strong><\/p>

\u5c5e\u6027\u6ce8\u5165<\/strong><\/p>

\u63a5\u53e3\u6ce8\u5165<\/strong><\/p>

\u6b64\u79cd\u65b9\u5f0f\u548c\u5c5e\u6027\u6ce8\u5165\u6ca1\u6709\u660e\u663e\u533a\u522b\uff0c\u4f46\u662f\u5374\u589e\u52a0\u4e86\u4e00\u4e2a\u63a5\u53e3\uff0c\u8fd9\u4e0d\u5229\u4e8e\u9879\u76ee\u540e\u671f\u7684\u7ef4\u62a4\uff0c\u56e0\u6b64\u4e0d\u5efa\u8bae\u4f7f\u7528\uff01<\/p>

Spring\u7684Resource\u63a5\u53e3\uff0c\u4f7f\u5e94\u7528\u8bbf\u95ee\u5e95\u5c42\u8d44\u6e90\u66f4\u52a0\u4fbf\u6377\u3002
\u4e3b\u8981\u65b9\u6cd5\uff1a
-boolean exists() \u662f\u5426\u5b58\u5728
-boolean isOpen()
-URL getURL()
-File getFile()
-InputStream getInputStream()<\/p>

\u8fd9\u4e2a\u63a5\u53e3\u4e0b\u9762\u4e3b\u8981\u7684\u5b9e\u73b0\u7c7b\u6709:<\/p>

\u6d4b\u8bd51<\/strong><\/p>

\u6d4b\u8bd52<\/strong><\/p>

\u6d4b\u8bd53<\/strong><\/p>

\u6ce8\uff1a\u8d44\u6e90\u52a0\u8f7d\u65f6\u9ed8\u8ba4\u91c7\u7528\u7cfb\u7edf\u7f16\u7801\u8bfb\u53d6\u8d44\u6e90\uff0c\u5982\u679c\u9700\u8981\u8f6c\u7801\uff0c\u53ef\u7528EncodedResource<\/strong><\/p>

\u8d44\u6e90\u5730\u5740\u8868\u8fbe\u5f0f<\/strong><\/p>

\u5339\u914d\u7b26<\/strong>
? :\u4e00\u4e2a\u5b57\u7b26
* :\u591a\u4e2a\u5b57\u7b26
** :\u591a\u7ea7\u76ee\u5f55<\/p>

\u8d44\u6e90\u52a0\u8f7d\u5668<\/strong>
ResourceLoader:\u53ef\u4ee5\u6839\u636e\u8d44\u6e90\u5730\u5740\u52a0\u8f7d\u4e00\u4e2a\u8d44\u6e90\uff0c\u4f46\u4e0d\u652f\u6301\u5339\u914d\u7b26
ResourcePatternResolver:\u652f\u6301\u5339\u914d\u7b26
PathMatchingResourcePatternResolver:Spring\u7684\u6807\u51c6\u5b9e\u73b0\uff0c\u4e5f\u652f\u6301\u5339\u914d\u7b26<\/p>

BeanFactory\u662f\u4e00\u4e2a\u5de5\u5382\uff0c\u7528\u4e8e\u521b\u9020\u5404\u79cd\u7c7b\u578b\u7684\u5bf9\u8c61\u3002
BeanFactory\u4f53\u7cfb\u7ed3\u6784<\/strong>
BeanFactory:\u5e95\u5c42\u63a5\u53e3
ListableBeanFactory:\u589e\u52a0\u8bbf\u95ee\u5bb9\u5668\u4e2dBean\u57fa\u672c\u4fe1\u606f\u7684\u65b9\u6cd5 \u5982bean\u7684\u4e2a\u6570\uff0c\u662f\u5426\u5305\u542b\u7b49\u3002
HierarchicalBeanFactory\uff1a\u7236\u5b50\u5bb9\u5668\u7ea7\u8054\u63a5\u53e3\uff0c\u4f7f\u5b50\u5bb9\u5668\u53ef\u4ee5\u8bbf\u95ee\u7236\u5bb9\u5668\u3002
ConfigurableBeanFactory\uff1a\u91cd\u8981\u63a5\u53e3\uff0c\u589e\u5f3a\u4e86IOC\u7684\u5b9a\u5236\u5316\uff0c\u52a0\u5165\u4e86\u7c7b\u88c5\u8f7d\u5668\u3001\u5c5e\u6027\u7f16\u8f91\u5668\u3001\u5bb9\u5668\u521d\u59cb\u5316\u540e\u7f6e\u5904\u7406\u5668\u7684\u65b9\u6cd5<\/strong>
AutowireCapableBeanFactory:\u52a0\u5165\u81ea\u52a8\u88c5\u914d<\/p>

\u6d4b\u8bd5<\/strong><\/p>

\u6ce8\uff1a\u4ee5\u4e0a\u4f7f\u7528\u4e86XmlBeanFactory\uff0c\u5176\u4e3a\u4e0a\u9762\u90a3\u4e9b\u63a5\u53e3\u7684\u6700\u7ec8\u5b9e\u73b0\u7c7b\u3002\u7528BeanFactory\u4f1a\u5bfc\u81f4Bean\u5728\u5bb9\u5668\u542f\u52a8\u65f6\u5019\u4e0d\u4f1a\u4e3b\u52a8\u521d\u59cb\u5316\uff0c\u800c\u662f\u7b49\u5230\u7b2c\u4e00\u6b21\u4f7f\u7528\u65f6\u5019\u5728\u521d\u59cb\u5316\u3002<\/p>

\u4e3b\u8981\u5b9e\u73b0\u7c7b\u6709ClasspathXmlApplicationContext\u4e0eFileSystemXmlApplicationContext\uff0c\u4e14ApplicationContext\u6240\u6709\u5b9e\u73b0\u7c7b\u90fd\u5b9e\u73b0\u4e86ResourcePatternResolver\u63a5\u53e3\uff0c\u53ef\u4ee5\u63a5\u53d7\u5339\u914d\u7b26\u8868\u8fbe\u5f0f\u52a0\u8f7d\u8d44\u6e90\u6587\u4ef6\u3002
\u5e76\u4e14ConfigurableApplicationContext\u8fd8\u52a0\u5165\u4e86refresh()\u548cclose()\uff0c\u7528\u4e8e\u5237\u65b0\u548c\u5173\u95ed\u5bb9\u5668\u3002
ApplicationContext\u662f\u5728\u5bb9\u5668\u542f\u52a8\u65f6\u521d\u59cb\u5316\u6240\u6709Bean<\/strong><\/p>

\u6ce8\u89e3\u914d\u7f6e<\/strong><\/p>

WebApplicationContext<\/strong>
WebApplicationContext\u662f\u5b58\u50a8\u5728ServletContext\u4e2d\uff0c\u6240\u6709\u53ef\u4ee5\u518d\u4efb\u4f55\u4ee3\u7801\u4e2d\u53d6\u51fa\u5b9e\u7528\u3002
WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)<\/em><\/p>

WebApplicationContext\u521d\u59cb\u5316<\/strong>
\u5728Web.xml\u914d\u7f6e\u76d1\u542c\u5668
ContextLoaderListener<\/p>

\u5982\u679c\u4e0d\u652f\u6301Listener\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528ContextLoaderServlet<\/p>

\u4ee5\u4e0a\u914d\u7f6e\uff0cSpring\u4f1a\u9ed8\u8ba4\u91c7\u7528XmlWebApplicationContext,\u5982\u679c\u8981\u91c7\u7528\u6ce8\u89e3\uff0c\u53ef\u4ee5\u5b9e\u7528\u5982\u4e0b\u914d\u7f6e<\/p>

Bean\u7684\u4f5c\u7528\u8303\u56f4
\u5b9e\u4f8b\u5316Bean\u65f6\u6240\u7ecf\u5386\u7684\u4e00\u7cfb\u5217\u9636\u6bb5<\/p>

\u5173\u952e\u70b9\uff1a<\/p>

\u53ef\u4ee5\u6ce8\u518c\u591a\u4e2a\u540c\u79cd\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7b\uff0c\u4f46\u662f\u5fc5\u987b\u5b9e\u73b0Ordered\u63a5\u53e3\u6392\u5e8f\u3002
\u65b0\u7248\u672c\u4e2d\u8fd8\u52a0\u5165\u4e86InstantiationAwareBeanPostProcessorAdapter\u62bd\u8c61\u7c7b
\"\"
\"\"<\/p>

\u4f8b\u5b50<\/strong><\/p>

\u4ee5\u4e0a\u4f8b\u5b50\u7b80\u5355\u6253\u5370\u4e86\u4e00\u4e9bspring\u7684\u751f\u547d\u5468\u671f\u4fe1\u606f\uff0c\u5e76\u4e14\u6709\u4e00\u4e9b\u5148\u540e\u987a\u5e8f\u3002\u5728\u65b0\u7248\u672c\u4e2d init method\u548cdestroy method\u7684\u914d\u7f6e\u6539\u4e3a@PostConstruct\u548c@PreDestroy\u6ce8\u89e3\u914d\u7f6e<\/a>\u3002
BeanPostProcessor\u662f\u4e00\u4e2a\u6269\u5c55Spring\u7684\u91cd\u8981\u63a5\u53e3\u3002<\/p>

\u52a0\u5165\u4e86\u4e00\u4e2a\u65b0\u63a5\u53e3ApplicationContextAware \u7528\u6237\u6ce8\u5165ApplicationContext\u3002<\/p>

BeanFactoryPostProcessor\u5b9e\u5728\u6700\u5f00\u59cb\u6267\u884c\u7684\uff0c\u53ef\u4ee5\u5728\u5bf9\u8c61\u5b9e\u4f8b\u5316\u540e\uff0c\u6709\u7ebf\u4fee\u6539\u3002\u5728Bean\u88abSpring\u52a0\u8f7d\u540e\uff0c\u4f1a\u751f\u6210\u4e00\u4e2aBeanDefinition<\/p>

\u6b64\u5904\u914d\u7f6e\u4e86\u4e00\u4e9bProcessor\uff0cApplicationContext\u5728\u542f\u52a8\u65f6\u5019\u4f1a\u81ea\u52a8\u52a0\u8f7d\u8fd9\u4e9bProcessor\u3002<\/p>","orderid":"0","title":"Spring IOC \u914d\u7f6e\u8be6\u89e3","smalltitle":"","mid":"0","fname":"linux\u7f16\u7a0b\u57fa\u7840","special_id":"0","bak_id":"0","info":"0","hits":"464","pages":"1","comments":"0","posttime":"2017-03-03 08:15:41","list":"1488500141","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"Spring<\/A> IOC<\/A> \u914d\u7f6e<\/A> \u8be6\u89e3<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"14.17.22.31","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"Spring IOC \u914d\u7f6e\u8be6\u89e3","lastview":"1714098960","digg_num":"7920","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}