导出的jar包,spring注解没有生效

@参考博客

jar包中有个ApplicationListener的实现类,发现启动项目时总是不能自动执行。我在项目中直接用写实现类也可以自动执行,我怀疑是spring扫描不到,建了相同的文件夹相同的类也可以自动执行。

最后怀疑是导出的jar包有问题。确定源码没问题后,将问题缩小在了导出jar时几个勾选上。

参考博客中提到

Add  directory entries   增加目录条目(很少人知道这个选项有什么用,其实他真的很有用!

                             在spring中有个这样的标签 <context:component-scan  />,它可以用来自动扫描包, 但是如果在你打的jar包里要不勾选Add  directory entries,那么你这个jar包,就不能spring的jar包那样 可以被扫描到)

豁然开朗,勾选后导出的jar包,果然能在启动时自动执行ApplicationListener的实现类

附:参考文章中的相关说明

    * Export generated class files and resources 表示只导出生成的.class文件和其他资源文件
    * Export all output folders for checked projects 表示导出选中项目的所有文件夹
    * Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了
    * Export refactorings for checked projects 把一些重构的信息文件也包含进去
在Select the export destination中选择导出的jar的路径:

 

Options:的操作

 

Compress the contents of the JAR file  压缩精简 jar文件的内容     

Add  directory entries   增加目录条目(很少人知道这个选项有什么用,其实他真的很有用!

                             在spring中有个这样的标签 <context:component-scan  />,它可以用来自动扫描包, 但是如果在你打的jar包里要不勾选Add  directory entries,那么你这个jar包,就不能spring的jar包那样 可以被扫描到)

Overwrite existing files without warning  没有警告的情况下覆盖现有的文件

Options:的操作我喜欢都勾选
原文地址:https://www.cnblogs.com/yanan7890/p/13433202.html