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