2014-12-07 96 views
1

一个基本的弹簧芯应用我刚学春,我的第一个节目是装载一个bean XML和实例化类。创建与IntelliJ IDEA的13个社区版

我会用弹簧芯和我创建了一个Java项目。创建了一个名为包:

com.lecture

,并把java文件存在以及Bean文件 弹簧的beans.xml

<beans> 
    <bean id="rkdf" class="com.college.RKDFCollege"/> 
    <bean id="cseLect" class="com.college.CSELecturer"/> 
</beans> 

但是当我运行有此代码的主要类:

ApplicationContext context = new ClassPathXmlApplicationContext("com.lecture.spring-beans.xml"); 

它给m故障E

2014年12月7日下午9点十分37秒 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息:从类路径 资源加载XML bean定义[com.lecture.spring- IOException解析来自类路径资源的XML文档 [com.lecture.spring-beans.xml];嵌套的例外是 java.io.FileNotFoundException:类路径资源 [com.lecture.spring-beans.xml文件]不能打开,因为它不存在

我是新来这个我没有任何想法至今!在项目模块设置中,我添加了JDK和Spring jar。感谢指导。

+0

一个名为'com.lecture.spring-beans.xml'的文件不在类路径中。你的文件系统中有这个文件名吗? – 2014-12-07 16:11:05

回答

1

尝试使用的XML以下路径:"com/lecture/spring-beans.xml"

ClassPathXmlApplicationContext对待你的类路径作为文件系统。

+0

我们是否必须为spring提供xmlns,因为现在SAXParserException在找到并在您的建议之后加载该文件之后。 – xploreraj 2014-12-07 16:14:41

+0

当然。 Xml文件必须在其名称空间中定义模式。 – 2014-12-07 16:15:28

0

ApplicationContext context = new ClassPathXmlApplicationContext("com.lecture.spring-beans.xml");正在搜索com.lecture.spring-beans.xml文件中的类路径,我认为这不是您所创建的文件的名称。我相信你已经创建了文件spring-beans.xml

确保spring-beans.xml文件在类路径中。否则,您可以将spring-beans.xml也放在资源文件夹中。然后加载文件为:

ApplicationContext context = new ClassPathXmlApplicationContext("spring-beans.xml"); 
+0

这不加载,它的装箱率com.lecture内,但与STAV萨阿德的建议,它加载。但是随着你的评论我得到了一个新的怀疑,com.lecture已经在classpath中,并且文件在这个包里面,为什么它只加载了xml文件的名字 – xploreraj 2014-12-07 16:18:00

+1

这些文件通常放在资源文件夹中。一旦它在classpath中,它将加载文件。 – nebula 2014-12-07 16:21:48

+1

@xploreraj原因是因为上下文将相对于类路径的根的路径视为默认包。从那里的每个子包都被视为一个文件夹。 – 2014-12-07 16:25:15