BeanFactory & ApplicationContext
org.springframework.beans.factory.BeanFactory 是最基本的 Spring 容器介面,它提供了管理 Bean 的一些基本功能。 BeanFactory 介面包含如下幾個基本方法:
Object getBean(String name) throws BeansException;
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
boolean containsBean(String name);
Class<?> getType(String name) throws NoSuchBeanDefinitionException;
org.springframework.context.ApplicationContext 是 org.springframework.beans.factory.BeanFactory 的子介面,除了提供 BeanFactory 所支援的功能,ApplicationContext 還提供了一些額外的功能,如國際化支援、事件機制、資源訪問等。
Spring 配置檔案的基本結構
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="..." class="..." >
<property name="..." value="..." />
<property name="..." ref="..." />
</bean> </beans>
例項化容器
按檔案系統路徑載入配置檔案:
ApplicationContext appCtx = new FileSystemXmlApplicationContext("src/applicationContext.xml");
按類路徑載入配置多件:
ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml");
載入多個配置檔案:
ApplicationContext appCtx = new ClassPathXmlApplicationContext(new String[] {"services.xml", "daos.xml"});
使用 Spring 容器
ExampleBean example = appCtx.getBean("example", ExampleBean.class);