我是Spring和Maven的新手。我正在尝试使用maven原型构建一个spring应用程序。所以我用maven pom.xml建立了项目。一切正常,但唯一的问题是我的IDE(netbeans)不包括我在类路径中的spring.xml。因此,构建失败,找不到文件异常。我必须专门提供spring.xml的完全限定路径才能使其正常工作。
所以下面的失败 -
AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
如果我按照以下方式进行更改,则可以正常工作 -
AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:///Users/shoukat/NetBeansProjects/csm/src/main/java/spring.xml");
我发现这种情况正在发生,因为我的classpath不包含main / java目录。以下是我尝试使用以下代码打印类加载器URL时的结果 -
ClassLoader sysClassLoader = ClassLoader.getSystemClassLoader();
//Get the URLs
URL[] urls = ((URLClassLoader)sysClassLoader).getURLs();
for(int i=0; i< urls.length; i++)
{
System.out.println(urls[i].getFile());
}
结果 -
/Users/shoukat/NetBeansProjects/csm/target/classes/
/Users/shoukat/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar
/Users/shoukat/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
/Users/shoukat/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar
/Users/shoukat/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar
/Users/shoukat/.m2/repository/org/springframework/spring-context/4.0.0.RELEASE/spring-context-4.0.0.RELEASE.jar
/Users/shoukat/.m2/repository/org/springframework/spring-aop/4.0.0.RELEASE/spring-aop-4.0.0.RELEASE.jar
/Users/shoukat/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
/Users/shoukat/.m2/repository/org/springframework/spring-beans/4.0.0.RELEASE/spring-beans-4.0.0.RELEASE.jar
/Users/shoukat/.m2/repository/org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar
理想情况下,这应该包括src目录,因为我将资源spring.xml文件放在那里。我需要更改什么,以便我的src / main目录包含在类路径中,我不需要使用spring.xml文件的完全限定系统路径对我的程序进行硬编码?
由于
答案 0 :(得分:2)
在类路径中使用ClassPathXmlApplicationContext
搜索spring.xml但在编译时使用maven忽略* {.xml放入src/main/java
要使其工作,您必须创建资源文件夹,文件夹树如:
src/main/java/..
src/main/resources/spring.xml
然后你可以使用:
AbstractApplicationContext context = new ClassPathXmlApplicationContext(&#34; spring.xml&#34;);