将存储库接口注释为@Component是否有任何缺点?

时间:2015-11-04 18:42:45

标签: java spring intellij-idea interface spring-annotations

我有这个界面:

public interface liteRepository extends CrudRepository<liteEntity, Long>, JpaSpecificationExecutor<liteEntity> {...}

一切正常,一切顺利。

但是,intellij不会将此类注册为弹簧组件。如果我使用@Component注释此接口,那么intellij会将此识别为spring bean,并且我可以在集成测试中@Autowire此存储库。

我的代码在注释后仍然可以使用,但我并不相信我没有弄乱我不应该搞乱的事情。

问题:
@Component注释添加到此接口有什么危害吗?

1 个答案:

答案 0 :(得分:1)

@Component注释唯一意味着该类有资格在Spring的组件扫描期间成为Spring bean。

因此,如果您希望它是一个Spring bean并且您没有在其他任何地方将其定义为Spring bean,则可以安全地添加@Component注释。

当然,只有你在某处配置了实际的组件扫描(例如,在某些Spring配置文件中为<context:component-scan base-package="...">),这才会起作用,我假设你已经开始了,因为bean正在自动连接添加注释后。