任何人都可以帮我解决以下错误,因为我刚接触春天吗?
cvc-complex-type.2.4.c: The matching wildcard is strict, but no
declaration can be found for element 'context:property-placeholder'.
我在applicationContext.xml中有以下配置:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
xmlns:context="http://www.springframework.org/schema/context">
<bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<context:property-placeholder location="src/jdbc.properties"/>
答案 0 :(得分:30)
Spring提供了许多额外的名称空间,提供了简单易懂的方法 - 例如tx(transactions),util(utils),mvc(spring MVC声明):
要使用一个,您必须在XML文件中设置架构映射。如果这样做,您将获得基本的代码完成(您的IDE可能会提供更多)。 。
在您的声明中,未设置/映射。
将您的声明更改为以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
</beans>
如果您愿意,您还可以为内部组件设置自己的命名空间。
答案 1 :(得分:0)
如果您使用Spring&gt; = 3.1,请使用PropertySourcesPlaceholderConfigurer而不是旧版本。
解决方法: 替换
<context:property-placeholder location="classpath:sport.properties"/>
BY
`
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:sport.properties</value>
</property>
</bean>
`
答案 2 :(得分:0)
如果使用 Spring Framework 5.2 或更高版本,您可以使用替代方法从属性文件加载变量:
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="location">
<value>classpath:sport.properties</value>
</property>
</bean>
所以您的完整 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
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="location">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
它将提供与 context:property-placeholder
相同的功能