您的位置:首页 > 编程语言 > Java开发

JAVA读取Spring配置的bean文件

2015-03-30 17:39 453 查看
http://xplq.iteye.com/blog/222912

资源获取总结:
Spring提供了很多 Resource 的实现,下面对以下四种进行总结:
ClassPathResource与FileSystemResource,ClassPathXmlApplicationContext与FileSystemXmlApplicationContextzhi。
以spring in actiong 中第一个例子为背景讨论:spring版的helloworld

具体实现一:ClassPathResource
Resource resource=new ClassPathResource("hello.xml");
BeanFactory factory=new XmlBeanFactory(resource);
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();
说明:使用ClassPathResource,只能直接使用:hello.xml,而:
(1)不能用src/hello.xml,
(2)不能用classpath前缀,如classpath:hello.xml,或classpath:src/hello.xml
(3)不能用绝对路径。

具体实现二:FileSystemResource
//直接使用src/hello.xml,而不能使用classpath:前缀
Resource resource=new FileSystemResource("src/hello.xml");
//或使用绝对路径,但不能用file:前缀
//Resource resource=new FileSystemResource("E:/Eclipse-JEE/mywork/SpringInAction/src/hello.xml");
BeanFactory factory=new XmlBeanFactory(resource);
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();
说明:使用FileSystemResource,
(1)使用:src/hello.xml,而不能使用classpath:前缀如classpath:src/hello.xml,或classpath:hello.xml
(2)使用绝对路径,但不能用前缀file

具体实现三:ClassPathXmlApplicationContext
//classpath:前缀可要可不要,不能用src/hello.xml,或classpath:src/hello.xml
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:hello.xml");//也可以为hello.xml
//或使用绝对路径,需要加上 file: 前缀表示这是绝对路径;注意,一定要加上file:
//ApplicationContext factory=new ClassPathXmlApplicationContext("file:E:/Eclipse-JEE/mywork/SpringInAction/src/hello.xml");
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();
总结:使用ClassPathXmlApplicationContext:
(1)classpath: 前缀可要可不要的, 默认就是指项目的classpath路径下面;但是不能用src/hello.xml,或classpath:src/hello.xml
(2)如果要使用绝对路径,需要加上 file: 前缀表示这是绝对路径;注意,一定要加上file

具体实现四:FileSystemXmlApplicationContext
//没有盘符的是项目工作路径,即项目的根目录;不能写hello.xml,要写src/hello.xml
ApplicationContext factory=new FileSystemXmlApplicationContext("src/hello.xml");
//文件绝对路径:file:前缀可要可不要
//ApplicationContext factory=new FileSystemXmlApplicationContext("E:
/Eclipse-JEE/mywork/SpringInAction/src/hello.xml");//也可加上file:
//可以使用classpath路径, 需要前缀 classpath:但是如加上classpath則不能加上src/否则报错。
//ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:hello.xml");
GreetingService greetingService=(GreetingService)factory.getBean("greetingService");
greetingService.sayGreeting();


总结:使用FileSystemXmlApplicationContext,默认表示的是两种:
(1)没有盘符的是项目工作路径,即项目的根目录;不能写hello.xml,要写src/hello.xml
(2)有盘符表示的是 文件绝对路径:file:前缀可要可不要
(3)如果要使用classpath路径,需要前缀classpath,但是加上classpath則不能加上src/否则报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: