将存储库接口注释为 @Component 有任何缺点吗?
Does annotating a repository interface as @Component have any cons?
我有这个界面:
public interface liteRepository extends CrudRepository<liteEntity, Long>, JpaSpecificationExecutor<liteEntity> {...}
有效,一切正常。
但是,intellij
不会将此 class 注册为 spring 组件。如果我用 @Component
注释此接口,那么 intellij
会将其识别为 spring bean,并且我可以 @Autowire
在我的集成测试中使用此存储库。
我的代码在注释后仍然有效,但我不确定我没有弄乱我不应该弄乱的东西。
问题:
这个接口加@Component
注解有什么坏处吗?
@Component
注释的唯一含义是 class 在 Spring 的组件扫描期间有资格成为 Spring bean。
因此,如果您希望它成为一个 Spring bean 并且您没有在其他任何地方将其定义为 Spring bean,您可以安全地添加 @Component
注释。
当然,只有当你在某处配置了实际的组件扫描(例如 <context:component-scan base-package="...">
在某些 Spring 配置文件中)时,这才会起作用,我假设你已经开始了,因为添加注释后,bean 会正确地自动装配。
我有这个界面:
public interface liteRepository extends CrudRepository<liteEntity, Long>, JpaSpecificationExecutor<liteEntity> {...}
有效,一切正常。
但是,intellij
不会将此 class 注册为 spring 组件。如果我用 @Component
注释此接口,那么 intellij
会将其识别为 spring bean,并且我可以 @Autowire
在我的集成测试中使用此存储库。
我的代码在注释后仍然有效,但我不确定我没有弄乱我不应该弄乱的东西。
问题:
这个接口加@Component
注解有什么坏处吗?
@Component
注释的唯一含义是 class 在 Spring 的组件扫描期间有资格成为 Spring bean。
因此,如果您希望它成为一个 Spring bean 并且您没有在其他任何地方将其定义为 Spring bean,您可以安全地添加 @Component
注释。
当然,只有当你在某处配置了实际的组件扫描(例如 <context:component-scan base-package="...">
在某些 Spring 配置文件中)时,这才会起作用,我假设你已经开始了,因为添加注释后,bean 会正确地自动装配。