Spring学习(三):BeanFactory和ApplicationContext

xiaoxiao2021-02-28  105

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应用上下文;

       

转载请注明原文地址: https://www.6miu.com/read-65420.html

最新回复(0)