如果基于 Spring Annotation 的控制器在 jar 文件中,则它不起作用
Posted
技术标签:
【中文标题】如果基于 Spring Annotation 的控制器在 jar 文件中,则它不起作用【英文标题】:Spring Annotation-based controllers not working if it is inside jar file 【发布时间】:2010-11-17 13:52:33 【问题描述】:我在子模块中有一些基于注释的控制器。这些模块部署为 jar 文件。
jar 文件中基于注释的控制器未加载到 spring 配置中。
我正在使用 eclipse 中的导出实用程序手动导出 jar 文件。
有人遇到过这个问题吗?
【问题讨论】:
【参考方案1】:当您使用 eclipse 中的导出实用程序导出 jar 文件时,有一个名为“添加目录条目”的选项。勾选此选项并导出jar文件,即可解决问题。
【讨论】:
线程Auto-wiring annotations in classes from dependent jars 还为Ant 任务指出jar task 应该将filesonly
设置为false(这是默认值)。
哇,这个答案结束了为期一天的头发拉扯调试事件,试图让弹簧工作。作为一个 spring 新手,我不明白为什么 spring 在 fricken 类路径上找不到罐子里的豆子。它可以在原始类中找到相同的内容,但是当您将其放入罐子中时,就好像罐子不存在一样。当然,我已经完全复制并增强了 spring 代码以找出原因,并最终痛苦地消除了所有其他可以想象的变量,因此非常感谢这个答案以及 spring 通过目录条目进行搜索的理解 :)跨度>
你拯救了我的一天。谢谢【参考方案2】:
只需在root-context.xml
文件中将base-package
添加到<context:component-scan />
。这就是我所需要的一切。
【讨论】:
以上是关于如果基于 Spring Annotation 的控制器在 jar 文件中,则它不起作用的主要内容,如果未能解决你的问题,请参考以下文章
基于 Annotation 的 Spring AOP 权限验证方法的实现