如果基于 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 权限验证方法的实现

关于是不是使用基于 Annotation 的 spring boot graphql server 的指导

基于Annotation的IOC 初始化

Spring Boot 之annotation注解

annotation

Spring学习笔记--使用Spring基于Java的配置