现在的位置: 首页 > 综合 > 正文

如何告诉spring初始化指定配置文件中的javabean

2013年07月25日 ⁄ 综合 ⁄ 共 909字 ⁄ 字号 评论关闭

我们一般使用下面两个类初始化spring的bean配置文件,完成javabean的创建和javabean之间关系的管理。
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext.

1、ClassPathXmlApplicationContext
参数为文件的路径,路径相对于classpath

使用方法:
ctx = new ClassPathXmlApplicationContext("applicationContext-hibernate.xml");

2、FileSystemXmlApplicationContext
参数为文件的路径,路径为文件系统的实际路径。

使用方法:
ApplicationContext ctx = new FileSystemXmlApplicationContext("c://applicationContext-hibernate.xml");

问题:
如果我们有这样的需求:配置文件的查找由我们自己的程序完成,然后我们需要spring来初始化我们找到的配置文件,该怎么做呢?
我们可以看看ApplicationContext的类层次关系。

从中我们可以看到ClassPathXmlApplicationContext是通过DefaultResourceLoader类获得配置文件的,缺省的方式是通过classpath,而FileSystemXmlApplicationContext由于覆盖了getResourceByPath方法,使得spring通过getResourceByPath指定的方式查找配置文件。

这时候我们可以获得答案了:
1、如果我们可以确保配置文件在classpath中,那么我们一般采用ClassPathXmlApplicationContext类初始化javabean。
2、如果我们需要自己查找配置文件的话,我们可以采用覆盖getResourceByPath的方法,这样spring就可以根据配置文件初始化javabean了。
当然这第二种方法需要我们的类继承AbstractXmlApplicationContext类。

抱歉!评论已关闭.