我为spring设置了一个应用程序配置文件,将其添加到facet,并根据另一个完美运行的配置文件进行设置。 对spring组件的所有引用都是可见的并且似乎有效,但是找不到对xml文件中的项的所有引用。
一个例子是任务:
<task:scheduler id="taskScheduler" />
<task:executor id="taskExecutor" pool-size="1" />
<task:annotation-driven executor="taskExecutor" scheduler="taskScheduler" />
无法解析taskScheduler和taskExecutor。因此,任务bean永远不会被设置,因此我的所有@Scheduled注释都不起作用。
设置服务的工厂提供程序工作正常(所有@Service和@Autowired注释都有效),所以我完全确定问题是项目中存在一些配置问题。
还需要在IntelliJ中配置什么才能让bean工作?为什么spring不重新扫描文件以查找bean的引用?
以下是引用所有springframework bean的地方:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd"
default-lazy-init="true">
答案 0 :(得分:1)
问题是应用程序配置文件有多个上下文。要修复它,请转到IntelliJ中的配置文件,然后在顶部有一个部分,您可以在其中选择要将上下文文件放入哪个应用程序上下文(在模块中读取类似&#34; Spring Application Context的内容[您的模块]。文件包含在[n]上下文&#34;)中。尝试选择每一个,直到参考解决;它将从其他上下文中删除它。我的特殊问题是它在MVC上下文中,它需要在Spring Application Context中。