我刚刚开始学习Spring框架,安装了Eclipse并添加了Spring和Maven。当然,我制作了我的第一个程序,Hello World,但是使用了 spring beans。 一切都是“按书本”,我创建了一些类,比如说 Person,以及将通过 xml spring beans 配置文件中的 beans 实例化它的主类。我在我的项目中制作了 beans.xml 文件,就像书中的示例一样,并编写了以下代码:
package maven.aplikacije.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App
{
public static void main( String[] args )
{
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
Person helloBean = (Person)ac.getBean("person");
helloBean.sayHello();
}
}
这是一个 beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id = "person" class = "maven.aplikacije.Person.Person"></bean>
</beans>
但是,它不起作用。它列出了以下错误(除其他外):
信息:从类路径资源加载 XML bean 定义 [Person/beans.xml] 线程“main”org.springframework.beans.factory.BeanDefinitionStoreException中出现异常:从类路径资源[Person/beans.xml]解析XML文档时出现IOException;嵌套异常是 java.io.FileNotFoundException:类路径资源 [Person/beans.xml] 无法打开,因为它不存在
我试着写
ApplicationContext ac = new ClassPathXmlApplicationContext("Person//beans.xml");
还有很多不同的版本,但没有任何效果。 当然,我还定义了Person类。 :)
为什么程序“看不到”beans.xml 文件?
提前谢谢您!
最佳答案
当您从 Person/beans.xml
的类路径引用它时,
ApplicationContext ac = new ClassPathXmlApplicationContext("Person//beans.xml");
您需要将 beans.xml
放置在您的 Maven 项目中的以下位置
src/main/resources/Person/beans.xml
如果你尝试阅读
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
然后
src/main/resources/beans.xml
或者你可以把它放在任何地方并配置maven将beans.xml文件放在指定命名空间的类路径中
关于java - java中的主程序无法打开Spring bean配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368320/