这是我通常使用的文件结构,工作正常.正如@ M.Deinum所说,你需要将你的xml文件放在src / main / resources中.我通常在资源的完整包路径中使用资源,因此在编译期间,maven会将所有资源添加到与使用它们的相应类相同的路径中.
执行上述操作后,资源将复制到类包中
public class App {
public static void main(String[] args) {
ApplicationContext context
= new ClassPathXmlApplicationContext("com/underdogdevs/stackmaven/beans.xml");
Hello hello = (Hello) context.getBean("hello");
hello.sayHello();
}
}
对我来说很好.如果您想知道为什么当xml已经在同一个类包中时仍然需要使用完整的包名,那么首先会在类根中搜索它
UPDATE
将包含bean.xml的包放入src / main / resources中.它应该适用于您使用的路径.
更新2
“Yes, it worked. But why is it working the example, I’m following as well. If the beans.xml is out of src/main/resources .. I can’t find out how that works? *
问题是,Spring容器将从类根看起来.它与资源文件夹没有任何关系.资源是maven项目构建到类路径的便利目录.本教程工作的原因是,beans.xml位于一个包中,它将被放入构建中的类路径中,如下所示.它只是使用资源,但package`也将构建到类路径.