天天看点

FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别

Spring中可以利用ClassPathXmlApplicationContext或者FileSystemXmlApplicationContex的容器,那么他们的区别是什么?

ClassPathXmlApplicationContext:

当使用ClassPathXmlApplicationContext时,后面的配置文件路径如下:

ApplicationContext context =
		new ClassPathXmlApplicationContext("applicationContext.xml");
	Boy boy1 = (Boy)context.getBean("boy");
	boy1.feed(" banana");
           

配置文件路径如下图:

FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别

程序正常运行,他的默认文件路径是src下那一级。

当使用FileSystemXmlApplicationContex时,如果用上面的配合,程序会报错。

ApplicationContext context =
		new FileSystemXmlApplicationContext("applicationContext.xml");
	Boy boy1 = (Boy)context.getBean("boy");
	boy1.feed(" banana");
           

除非将xml移动到与src同级,如下图:

FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别

可正常运行。他的默认文件路径是项目名下一级,与src同级。