Spring學習(三):BeanFactory和ApplicationContext

 

1.概述:

             Bean工廠(com.springframework.beans.factory.BeanFactory)是spring框架最核心的接口,它提供了高級Ioc的配置機制;BeanFactory使管理不同類型的java對象成爲 可能;

             應用上下文(com.springframework.context.ApplicationContext)是建立在BeanFactory基礎之上,提供了更多面嚮應用的功能;

             我們一般稱BeanFactory爲IOC容器,而ApplicationContext爲應用上下文;

2.BeanFactory:

            一個工廠類,用來管理java bean;

           spring爲BeanFactory提供了多種實現,最常用的是XmlBeanFactory.下面使用xml來裝配beans;

          

package mainTest;

import java.io.IOException;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

import beans.Car;

public class ResourceLoaderTest {

	public static void main(String[] args) throws IOException {
		ResourcePatternResolver resolver =new PathMatchingResourcePatternResolver();
		Resource res[]=resolver.getResources("classpath*:**/bean.xml");
		//BeanFactory bean=new XmlBeanFactory(res);
		for(Resource s :res){
			BeanFactory bean=new XmlBeanFactory(s);
			Car car=bean.getBean("car",Car.class);
			System.out.println(car.toString());
		}
//		Car car=bean.getBean("car",Car.class);
//		System.out.println(car.toString());
	}

}

 

注意:在初始化BeanFactory時,必須爲其提供一種日誌框架,這樣啓動Spring時纔不會報錯;

4.ApplicationContext:

          ApplicationContext的主要實現類是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext;前者是默認加載配置文件,後者默認從文件系統中裝載配置文件;

         

package mainTest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import beans.Car;

public class ApplicationContextTest {

	public static void main(String[] args) {
		//默認加載路徑
		//ApplicationContext context=new ClassPathXmlApplicationContext("classpath*:**/bean.xml");
		//文件系統裝配加載路徑
		ApplicationContext context=new FileSystemXmlApplicationContext(new String[]{"D:/workspace/springLearn/src/config1/bean.xml","D:/workspace/springLearn/src/config/bean.xml"});
		Car car=(Car)context.getBean("car");
		System.out.println(car.toString());
		Car car2=(Car)context.getBean("car1");
		System.out.println(car2.toString());
	}

}

 

5.WebApplicationContext:

           專門爲Web應用準備的,它允許從相對於Web根目錄路徑裝載配置文件完成初始化工作;從WebApplicationContext中可以獲取ServletContext的引用,整個Web應用上下文對象將作爲屬性放置到ServletContext中,以便Web環境可以訪問Spring應用上下文;

       


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章