BeanFactory為一個管理bean的工廠(即為spring的容器),它管理的對象可以是bean也可以是FactoryBean(這種請況會再調用FactoryBean的getObject()擷取真正的bean)。
FactoryBean為一個工廠bean,受BeanFactory管理。
先來看一看BeanFactory:
public<b> </b>interface<b> BeanFactory {</b><b></b>
<b>String </b><b>FACTORY_BEAN_PREFIX</b><b> = </b><b>"&"</b><b>;</b><b></b>
<b>Object getBean(String name);</b><b></b>
<b>Object getBean(String name, Class requiredType);</b><b></b>
boolean<b> containsBean(String name);</b><b></b>
boolean<b> isSingleton(String name);</b><b></b>
boolean<b> isPrototype(String name);</b><b></b>
boolean<b> isTypeMatch(String name, Class targetType);</b><b></b>
<b>Class getType(String name);</b><b></b>
<b>String[] getAliases(String name);</b><b></b>
<b>}</b>
<b> </b>
BeanFactory調用者隻需要調用getBean方法即可獲得指定bean的引用。
ApplicationContext繼承自BeanFactory,它擁有BeanFactory提供的所有配置架構和基本的功能, 而且 ApplicationContext為它增加了更強的功能。是以通常在J2EE環境的應用中,最好選擇使用ApplicationContext下的子類。
<b> Resource resource = </b>new<b> FileSystemResource(</b><b>"beans.xml"</b><b>);</b><b></b>
<b> BeanFactory </b><b>factory</b><b> = </b>new<b> XmlBeanFactory(resource);</b><b></b>
<b> ClassPathResource resource = </b>new<b> ClassPathResource(</b><b>"beans.xml"</b><b>);</b><b></b>
<b> ApplicationContext context = </b>new<b> ClassPathXmlApplicationContext(</b><b></b>
new<b> String[] {</b><b>"applicationContext.xml"</b><b>, </b><b>"applicationContext-part2.xml"</b><b>});</b><b></b>
<b> BeanFactory </b><b>factory</b><b> = (BeanFactory) context;</b><b></b>
<b></b>
本文轉自 yzzh9 51CTO部落格,原文連結:http://blog.51cto.com/java999/196399,如需轉載請自行聯系原作者