【发布时间】:2016-05-18 10:30:43
【问题描述】:
Spring 开发人员的一个问题:
我正在使用 spring 框架进行多模块项目。
模块:
parent(父 maven pom 项目)
all(ear 项目用于从多个模块构建 ear)
目录作为父级
catalog-ejb(实现)
catalog-api(接口)
还有一个 rest 模块依赖于 catalog-api 并使用来自 catalog-api 的自动装配接口。
问题是在部署期间我得到“找不到类型的合格 bean”异常。
api 模块被部署为ear 中的jar 库
ejb 模块被部署为 ejbModule
rest 模块被部署为 webModule (war)。
【问题讨论】:
-
那么您还没有将您的实现类配置为 Spring bean?那么它就不起作用了,因为 Spring 看不到你的实现类。
-
哦,我正在使用 spring 4,而我的休息模块有 @ComponentScan(basePackages = {"com.ex.rest", "com.ex.catalog.api"}) 休息模块不能直接看到实现类(这是接口的目的)
-
发布您的 POM。您必须将实现包作为运行时依赖项包含在内,否则它将不存在。
-
那你希望Spring如何创建实现类的实例来注入它们?
-
*-all 模块下没有为实现jar定义范围,所以它应该是编译的,实现jar也存在于ear部署中。我不知道spring会如何找到实现,但我认为它应该最终在部署时将所有类部署到同一个jvm。
标签: java spring dependency-injection