2

spring-data-mongo我的存储库包没有被<mongo:repositories/>标签扫描的地方有一些奇怪的行为。我正在使用 spring 3.2.3.RELEASE 和 spring-data-mongo 1.2.1.RELEASE。

我有一个名为的项目,其中edowmis有一个 webapp。我单独使用它,因此可以忽略其他模块。我有一个数据层的应用程序上下文 2 maven modulesdatalayerwebdatalayer数据层配置

所以我想通过编写一个小的单元/集成测试来测试我的设置,但我注意到我无法自动装配我的UserRepository,因为它说没有这样的 bean 单元测试

因为我使用的是 IntelliJ,所以当事情正常和不正常时,我可以看到某些视觉效果。我已将 addec 添加<context:component-scan/>到我的应用程序上下文中,但没有结果。 未扫描用户存储库

但是当我添加@Component注释时,它已经开始识别类。 被扫描的组件

您可能需要的所有信息都在paste.org上

我的配置是否真的有必要@component@Repository有什么问题?

4

1 回答 1

0

是的,@Component 或 @Repository 是必需的。扫描只是表明 spring 应该查找通过注释(@Component、@Repository、@Service)标识的类并将它们作为 bean 加载。如果您不使用存储库或组件扫描,则必须通过 XML 配置或 Java 配置手动实例化所有 spring 管理的 bean。

您必须告诉 spring 哪些类要变成 bean,因为它不假定类路径中的所有内容都应该是 spring 管理的 bean,这就是您需要使用注释的原因。

于 2014-09-30T17:08:52.307 回答