spring 项目打包后注解无法被自动注入

2019-11-06 11:10:25 +08:00
 wsz66
如题,有一个 spring 项目打包后注解无法被自动注入,使用 maven 进行打包的,但打包之后注解就扫描不到了,使用的编译器是 IDEA,请问有大佬抽空回答一下吗
4181 次点击
所在节点    Java
9 条回复
pengfei
2019-11-06 11:29:49 +08:00
猜一下, 如果 spring 主配置文件采用 java 类那种方式不谈,假如是 xml 配置文件的方式的话是不是打包的时候没有把 xml 塞到 jar 包里面, 打开 jar 包看下如果是的话 pom 文件在 resources 标签下增加 include 标签
airfling
2019-11-06 11:32:19 +08:00
解决方向两个,依赖包是否全部导入,第二个就是 1 楼的方向
orzfanfan
2019-11-06 11:46:02 +08:00
你是在另外一个项目上依赖了这个 spring 项目,然后启动的时候发现注解无法被扫描?
choiwanxy
2019-11-06 11:54:03 +08:00
springboot?
xuanbg
2019-11-06 11:55:32 +08:00
1、打包的时候包是不是没导入,jar 包解开来检查一下就知道了
2、包的版本是不是有问题,同样 jar 包解开来看看
3、包路径的问题,譬如你的项目里 Application 路径是 a.b.c 的话,是扫描不到路径是 a.b.d 下面的包或者类的。要把 Application 移到 a.b 下面才行
wsz66
2019-11-06 12:15:32 +08:00
@choiwanxy spring

@orzfanfan 对,依赖 jar 包
@pengfei @airfling 谢谢,我看看
@xuanbg 谢谢。我用的是 IDEA 的 maven 插件打包的,应该是配置文件没有加进去
choiwanxy
2019-11-06 13:59:27 +08:00
jar 解压了,仔细看一下,不行 debug 一下吧。可能性还挺多吧。
hantsy
2019-11-06 14:14:20 +08:00
project a 依赖 project b.
在 a 的 Application 上加上 ComponentScan(b 的根包名)

如:
package project.a;
@ComponentScan("project.b")
public class DemoApplication{}
orzfanfan
2019-11-06 15:53:13 +08:00
@wsz66 你可能需要看一下 springboot 的 starter ,我都是把 springboot 打包成 starter,提供一个入口,上面的项目的 spring 就能访问了,我不清楚你的项目是否用了 springboot,如果用了,可以去看看 springboot 的 starter 封装方式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/616784

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX