0

当我编译我的项目时,它给出了这个错误并停止编译

org.springframework.beans.factory.BeanDefinitionStoreException:从 ServletContext 资源 [/WEB-INF/application-context.xml] 解析 XML 文档时出现意外异常;嵌套异常为 java.lang.IllegalArgumentException:必须指定至少一个基础包

为什么会发生此异常以及我如何解决它。

4

3 回答 3

2

根据 Spring Doc

Spring 提供了自动检测“原型”类并使用 ApplicationContext 注册相应 BeanDefinition 的能力。要自动检测这些类并注册相应的 bean,需要在 XML 中包含以下元素,其中“basePackage”将是两个类的公共父包(或者可以指定一个逗号分隔的列表,其中包括每个类的父包班级)。

因此,您的应用程序上下文应如下所示:

<?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-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd">

     <context:component-scan base-package="org.example"/>

</beans>

要使您的包能够被扫描,component-scan您应该根据要求使用相应的注释来注释您的 java 类。喜欢@Controllers@Service等等。在此处查看完整的详细信息。

于 2013-06-13T04:54:01.393 回答
1
<context:component-scan base-package="Your package">

</context:component-scan>

尝试在你的配置文件中添加这个

于 2013-06-13T04:47:41.453 回答
1

从我上面的评论

原因可能是您<context:annotation-config></context:annotation-config>在应用程序上下文中启用了注释驱动的上下文配置 (),但您必须提供任何基本包来扫描 Spring bean。

添加应用程序的根包作为基础包以扫描 bean 定义

<context:component-scan base-package="<your-app-base-package>"/>
于 2013-06-13T04:58:30.487 回答