Spring依赖版本导致的配置错误
想验证不同作用域对Bean的管理方式,遇到如下错误:
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Line 4 in XML document from class path resource [bean5.xml] is invalid; nested exception is org.xml.sax.SAXParseException: 文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"。
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 134; 文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"。
我是刚接触通过Maven导入Spring的相关依赖,创建的Spring配置文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="scope" class="com.lzjt.gsh.scope.Scope" scope="prototype"></bean>
</beans>
Maven配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Spring1_2</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>1.2.6</version>
</dependency>
</dependencies>
</project>
该配置文件通过DTD文件进行格式的约束,通过提供的地址,我下载了该DTD文件,发现bean标签甚至没有scope属性
网上搜了半天,都是在教修改Spring配置文件的声明,试了半天根本没用,下载了Spring的Jar包版本,发现我导入的是1.2.6,怀疑是Jar包版本的问题,更换为4.3.7.RELEASE后,问题得以解决。