天天看點

BeanFactory與FactoryBean1

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>"&amp;"</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,如需轉載請自行聯系原作者

繼續閱讀