2017-06-04 121 views
1

我是Spring和Maven的新手。我正在嘗試使用maven原型構建一個spring應用程序。所以我已經用maven pom.xml設置了這個項目。所有的東西都可以正常工作,但唯一的問題是我的IDE(netbeans)不包括我的spring.xml在classpath中。因此,構建失敗,文件未找到異常。我必須專門給出spring.xml的完全限定路徑才能使其工作。所以下面如何在Maven Classpath中添加資源

失敗 - AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

如果我改變它下面它的工作原理 -

AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:///Users/shoukat/NetBeansProjects/csm/src/main/java/spring.xml"); 

我發現,這種情況正在發生,因爲我的類路徑中不包括主/ 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目錄,因爲我把我的資源春那裏有.xml文件。我需要更改什麼,以便我的src/main目錄包含在classpath中,而且我不必使用我的spring.xml文件的完全限定系統路徑對我的程序進行硬編碼?

感謝

回答

2

當你的classpath但行家使用ClassPathXmlApplicationContext搜索spring.xml當編譯忽略像* .XML放在src/main/java

對於這種資源的工作,你必須創建資源文件夾,該文件夾樹是這樣的:

src/main/java/.. 
src/main/resources/spring.xml 

然後你可以使用:

AbstractApplicationContext context = new ClassPathXmlApplicationContext(「spring.xml」);

Maven - Introduction to the Standard Directory Layout

相關問題