当我编译我的项目时,它给出了这个错误并停止编译
org.springframework.beans.factory.BeanDefinitionStoreException:从 ServletContext 资源 [/WEB-INF/application-context.xml] 解析 XML 文档时出现意外异常;嵌套异常为 java.lang.IllegalArgumentException:必须指定至少一个基础包
为什么会发生此异常以及我如何解决它。
当我编译我的项目时,它给出了这个错误并停止编译
org.springframework.beans.factory.BeanDefinitionStoreException:从 ServletContext 资源 [/WEB-INF/application-context.xml] 解析 XML 文档时出现意外异常;嵌套异常为 java.lang.IllegalArgumentException:必须指定至少一个基础包
为什么会发生此异常以及我如何解决它。
根据 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
等等。在此处查看完整的详细信息。
<context:component-scan base-package="Your package">
</context:component-scan>
尝试在你的配置文件中添加这个
从我上面的评论
原因可能是您<context:annotation-config></context:annotation-config>
在应用程序上下文中启用了注释驱动的上下文配置 (),但您必须提供任何基本包来扫描 Spring bean。
添加应用程序的根包作为基础包以扫描 bean 定义
<context:component-scan base-package="<your-app-base-package>"/>