我们之前提到过,Spring中有两种工厂Bean,其中一种我们已经介绍过,就是FactoryBean,另一种就是我们的ApplicationContext
ApplicationContext相比于FactoryBean具有同样生产对象的功能之外,还具备了更多的特性,比如国际化,事务的发布等等(原因是比FactoryBean实现了更多的接口)。
Spring中有两个基于XML配置文件具体实现ApplicationContext功能的类,一个是ClassPathXmlApplicationContext,另一个是FileSystemXmlApplicationContext
通过使用我们来对比两者的区别
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring.xml");
FileSystemXmlApplicationContext applicationContext1 = new FileSystemXmlApplicationContext("绝对路径");
区别:
我们的Java程序首先会被编译器编译成字节码文件,而配置文件虽然不会被编译,但同时也会跟随到被编译后的字节码文件夹,我们的ClassPathXmlApplicationContext就通过该文件夹下的路径寻找Spring配置文件;而FileSystemXmlApplicationContext则是通过绝对路径寻找配置文件
也就是说,FileSystemXmlApplicationContext的寻找配置文件的空间可以更大。