import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DrawingApp {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring.xml");
Triangle triangle= (Triangle) applicationContext.getBean("triangle");
triangle.draw();
}
}
public class Triangle {
public void draw()
{
System.out.println("Triangle Class");
}
}
這是Java程式。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="triangle" class="Triangle"/>
</beans>
這是 XML 檔案。當我嘗試運行該程式時,出現以下錯誤
14:32:12.644 [main] 除錯 org.springframework.context.support.ClassPathXmlApplicationContext - 重繪 org.springframework.context.support.ClassPathXmlApplicationContext@721e0f4f 執行緒“主”中的例外 org.springframework.beans.factory.BeanDefinitionStoreException:IOException 決議 XML來自類路徑資源 [Spring.xml] 的檔案;嵌套例外是 java.io.FileNotFoundException:類路徑資源 [Spring.xml] 無法打開,因為它在 org.springframework 的 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) 中不存在.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) 在 org.
我也在 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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="triangle" class="Triangle"/>
</beans
然后我也遇到了同樣的錯誤
指導我完美地完成這個春季編程。
uj5u.com熱心網友回復:
您的 XML 檔案位于錯誤的目錄中。ClassPathXmlApplicationContext在 Java類路徑中搜索它。 Java 類路徑的目的是定位可用的已編譯類檔案,但在其中放置運行時組態檔也變得非常普遍。
如果您使用 Maven 構建您的專案,您可以將您的Spring.xml檔案放入src/main/resources. Maven 會將其內容復制到執行期間將位于類路徑上的檔案夾中。
uj5u.com熱心網友回復:
這是因為您還沒有啟動 Spring 容器。你必須打電話ClassPathXmlApplicationContext.refresh()來啟動它。
另一件事是您也沒有配置 XML 組態檔的位置。
所以假設呼叫了XML組態檔config.xml,請改成如下:
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext();
applicationContext.setConfigLocations("config.xml");
applicationContext.refresh();
或者簡單地說:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("config.xml");
這將refresh()在掩護下自動呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/412169.html
標籤:
